home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HK2CFG.BAS Copyrigit(C) T.Komura / 家計簿システムHK /
- 30 ' / Version 2 /
- 31 ' Version 1.1 1993.08.03 / 環境設定プログラム /
- 32 ' 1.2 1993.09.05 金額入力電卓機能、月次開始日指定追加
- 33 ' 1.4 1994.06.12
- 34 ' HK v2.0 L10 1995.06.26 HK Version 2
- 35 ' HK v2.0 L10d 1995.06.26 家計簿ファイル無いとき作成確認を求め作成
- 36 ' HK v2.0 L10j 1995.08.03 変更後他モードへの移行時保存確認漏れ
- 37 ' 1995.08.03 セレクタをパスした時prgdrvに戻れないのを修正
- 100 '------------------------------------------------------------------
- 110 CLEAR ,,,,1024,300*1024
- 150 DIM CFI$(60),CFIDN(200),CFGX$(200)
- 160 GOSUB *CONFIGファイルチェック2
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 CONSOLE 0,24,0:MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 255 'ウインドウ関係座標配列
- 256 G=7:B=50
- 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
- 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
- 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 267 DIM MD_SB#(10465),MD_SW#(10465),MD_SX#(10465):'max : HELP window
- 268 'デ-タ配列
- 270 DIM DYN$(16),DRM$(16),DYN#(16),SDYN$(20),SDYN#(20)
- 272 DIM CFDX(60),CFDY(60),CFDC(60),CFDL(60)
- 274 DIM TDYN1$(15),TSDYN1$(20),TDYN2$(15),TSDYN2$(20)
- 276 DIM TDYN1#(15),TSDYN1#(20),TDYN2#(15),TSDYN2#(20)
- 280 DIM WRD$(15,128),WLN(15,128),WRDM(128) :'辞書データ
- 295 DIM DOC$(2000) :'HELPデータ
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 330 GOSUB *内容表示座標読み取り
- 335 LOADM "DOS.REX",0
- 340 GOSUB *F_初期化
- 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449),DICD#(2565)
- 370 ON ERROR GOTO *ERROR
- 400 GOSUB *MCREAD:GOSUB *DCLOCKREAD
- 440 '
- 510 CTRLB1=17:'コントロールボタン個数
- 515 CTRLB2=15
- 524 HKCFG =6 :'検索ボタン番号
- 526 HKSRCEND=10:'終了ボタン番号
- 528 HKCFGSV=13 :'保存ボタン番号
- 530 RETN=0
- 540 DOCF$="\HK2cfg.HLP"
- 980 '
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *SEFFECT1
- 1010 MESN=1:GOSUB *MESDSP:PRINT VERN$;
- 1015 MESN=4:GOSUB *SNDMSG
- 1020 GOSUB *本日の日付
- 1035 MOUSE 1,320,64,1
- 1040 MCN=1:GOSUB *MCDSET
- 1050 GOSUB *設定内容一覧表示
- 1100 *メイン選択
- 1110 MESN=2:GOSUB *MESDSP'
- 1120 SWPASS=1:G=MPG+1:GOSUB *MCSELECT
- 1130 IF SWNO>13 THEN *SSEL
- 1140 IF SWNO<0 THEN 1120
- 1150 ' HK2 記入 検索 分析 CLDR 設定 日付 時計 help exit 計算 読出 保存
- 1155 ON SWNO GOTO *S01,*S02,*S02,*S02,*S02,*S02,*S03,*S03,*S07,*S09,*S04,*S05,*S06
- 1160 GOTO *メイン選択
- 1190 '
- 2000 *S06:'保存 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 2010 G=1:B=HKCFGSV:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2020 MESN=7:GOSUB *MESDSP
- 2030 CMES$="設定内容保存":GOSUB *確認
- 2035 IF CAUNO=1 THEN 2040 ELSE 2070
- 2040 *S06_01
- 2042 IF RETN=0 THEN 2045
- 2043 G=1:B=HKCFGSV:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2045 GOSUB *CONFIGファイル出力:EDITF=0
- 2050 GOSUB *CONFIGファイルチェック2
- 2060 GOSUB *設定内容一覧表示
- 2070 G=1:B=HKCFGSV:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2075 GOSUB *HLIDXファイルチェック
- 2080 ON RETN+1 GOTO *メイン選択,*S0901,*S0201
- 2090 '
- 2200 *S05:'読出 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 2210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2220 MESN=9:GOSUB *MESDSP
- 2230 CMES$="元の設定に戻す":GOSUB *確認
- 2235 IF CAUNO=1 THEN 2250 ELSE 2270
- 2240 MESN=8:GOSUB *MESDSP
- 2250 GOSUB *CONFIGファイルチェック2
- 2260 GOSUB *設定内容一覧表示
- 2270 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2280 GOTO *メイン選択
- 2290 '
- 2300 *S04:'累積残高計算 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 2310 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2340 GOSUB *総計ファイル作成
- 2370 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2380 GOTO *メイン選択
- 2390 '
- 4000 *SSEL'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 4010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 4030 CFNO=SWNO-13
- 4032 IF CFNO=16 THEN GOTO 4500
- 4036 EDITF=1
- 4041 IF CFNO=22 THEN GOSUB *SNDMF設定 :GOTO 4500
- 4045 IF CFNO=20 OR CFNO=21 THEN GOSUB *SNDMFウエイト設定 :GOTO 4500
- 4050 IF CFNO=24 OR CFNO=25 THEN GOSUB *DICF設定 :GOTO 4500
- 4057 IF CFNO=27 THEN GOSUB *SCALC設定 :GOTO 4500
- 4058 IF CFNO=29 THEN GOSUB *月次開始日設定 :GOTO 4500
- 4059 IF CFNO=30 THEN GOSUB *残高起算日設定 :GOTO 4100
- 4062 IF CFNO>=17 AND CFNO<=19 THEN GOSUB *パス設定 :GOTO 4500
- 4064 IF CFNO=23 OR CFNO=26 THEN GOSUB *パス設定 :GOTO 4500
- 4065 GOSUB *環境設定入力 :GOTO 4500
- 4070 '
- 4080 GOTO *メイン選択
- 4090 '
- 4100 IF CFIYMDCF=0 THEN GOTO 4500
- 4110 G=1:B=11:BST(G,B)=1:GOSUB *BTN_ONOFF
- 4120 GOSUB *総計ファイル作成
- 4130 G=1:B=11:BST(G,B)=0:GOSUB *BTN_ONOFF:GOTO 4500
- 4490 '
- 4500 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 4580 GOTO *メイン選択
- 4590 '
- 6000 *S01:'About HK2---------------------------------------------------'
- 6010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6020 MESN=1:GOSUB *MESDSP
- 6030 GOSUB *ABOUT表示
- 6060 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6070 GOTO *メイン選択
- 6080 '
- 6100 *S03:'Digital Clock ----------------------------------------------'
- 6110 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6120 MESN=1:GOSUB *MESDSP
- 6130 GOSUB *DGCLOCK
- 6160 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6170 GOTO *メイン選択
- 6180 '
- 6200 *S07:'Help -------------------------------------------------------'
- 6210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6220 MESN=20:GOSUB *MESDSP
- 6230 GOSUB *HKHELP
- 6260 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6270 GOTO *メイン選択
- 6280 '
- 7900 '
- 8000 *S02:'プログラム呼び出し・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 8010 IF SWNO=HKCFG THEN GOTO *メイン選択
- 8012 G=1:B=SWNO :BST(G,B)=1:GOSUB *BTN_ONOFF
- 8022 IF EDITF=0 THEN *S0201
- 8024 MESN=11:GOSUB *MESDSP
- 8026 CMES$="設定内容未保存":GOSUB *確認
- 8028 IF CAUNO=2 THEN *S0201
- 8030 RETN=2:GOTO *S06_01
- 8040 *S0201
- 8060 G=1:B=HKCFG:BST(G,B)=0:GOSUB *BTN_ONOFF
- 8110 MESN=10:GOSUB *MESDSP':MESN=24:GOSUB *SNDMSG
- 8120 INTERVAL OFF:GOSUB *SEFFECT2
- 8130 ON SWNO-1 GOTO *S021,*S022,*S023,*S024,*S02
- 8150 '
- 8160 *S021:RUN "HK2in.bas"
- 8170 *S022:RUN "HK2src.bas"
- 8180 *S023:RUN "HK2anl.bas"
- 8190 *S024:RUN "HK2cld.bas"
- 8940 '
- 9000 *S09:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 9030 IF EDITF=0 THEN *S0901
- 9040 MESN=11:GOSUB *MESDSP
- 9045 CMES$="設定内容未保存":GOSUB *確認
- 9050 IF CAUNO=2 THEN 9110
- 9070 RETN=1:GOTO *S06_01
- 9100 *S0901
- 9110 MESN=10:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 9130 MOUSE 5:INTERVAL OFF:GOSUB *SEFFECT2
- 9150 *ENDP
- 9155 RUN "hk2.bas"
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10105 LINE(0,463)-(639,479),PSET,0,BF
- 10115 SYMBOL(0,465),MES$,.75!,.75!,CM
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 5, 0, 1 :'--- 01
- 10215 DATA "家計簿システム HK2 [設定]モード"
- 10220 DATA 2, 23, 7, 0, 0 :'--- 02
- 10225 DATA "適当なボタンをマウスカーソルで押して(左クリック)ください。"
- 10230 DATA 2, 23, 5, 0, 0 :'--- 03
- 10235 DATA " 設定内容を入力してください。"
- 10240 DATA 2, 23, 4, 0, 1 :'--- 04
- 10245 DATA "音声案内機能を[有効]にします。"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA "音声案内機能を[無効]にします。"
- 10260 DATA 2, 23, 4, 0, 1 :'--- 06
- 10265 DATA "音声案内のウエイトタイムを変更します。"
- 10270 DATA 2, 23, 6, 0, 0 :'--- 07
- 10275 DATA "設定内容をファイルに保存します。 [OK]-保存する [NG]-保存しない"
- 10280 DATA 2, 23, 4, 0, 0 :'--- 08
- 10285 DATA "★設定ファイル読み込み中"
- 10290 DATA 2, 23, 6, 0, 1 :'--- 09
- 10295 DATA "設定内容を元の状態に戻します。 [OK]-元に戻す [NG]-元に戻さない"
- 10300 DATA 2, 23, 5, 0, 0 :'--- 10
- 10305 DATA "★★★ しばらくお待ちください。"
- 10310 DATA 2, 23, 6, 0, 0 :'--- 11
- 10315 DATA "設定内容が未保存です。 [OK]-設定内容を保存して終了 [NG]-保存しないで終了"
- 10320 DATA 2, 23, 4, 0, 1 :'--- 12
- 10325 DATA "辞書入力機能を[有効]にします。"
- 10330 DATA 2, 23, 4, 0, 1 :'--- 13
- 10335 DATA "辞書入力機能を[無効]にします。"
- 10340 DATA 2, 23, 4, 0, 1 :'--- 14
- 10345 DATA "★新規家計簿ファイル作成中。 しばらくお待ちください。"
- 10350 DATA 2, 23, 6, 0, 1 :'--- 15
- 10355 DATA "家計簿ファイルがありません。 新規に家計簿ファイルを作成しますか? [OK]-作成する [NG]-作成しない"
- 10360 DATA 2, 23, 4, 0, 1 :'--- 16
- 10365 DATA "家計簿金額入力時の電卓機能を[有効]にします。"
- 10370 DATA 2, 23, 4, 0, 1 :'--- 17
- 10375 DATA "家計簿金額入力時の電卓機能を[無効]にします。"
- 10380 DATA 2, 23, 7, 0, 1 :'--- 18
- 10385 DATA "ディレクトリをファイルセレクタで選んでください。 [OK]-選択 [Cancel]-取消"
- 10390 DATA 2, 23, 6, 0, 1 :'--- 19
- 10395 DATA "残高演算を実行します。 家計簿データディスクをセットしてください。 [OK]-実行 [NG]-取消"
- 10400 DATA 2, 23, 5, 0, 1 :'--- 20
- 10405 DATA "HKHELP★設定モードの説明を表示しています。 頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]"
- 10410 DATA 2, 23, 4, 0, 1 :'--- 21
- 10415 DATA "★残高演算実行中"
- 10420 DATA 2, 23, 7, 0, 1 :'--- 22
- 10425 DATA "新規に家計簿ファイルを作成する年月を入力してください。"
- 10600 *SEFFECT1'////////////////////////////////////////////////////////
- 10605 SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
- 10610 SCREEN 1,0,2,1:GOSUB *表紙表示
- 10612 SCREEN 1,1,3,1:
- 10620 FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
- 10621 ' LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
- 10622 LINE(0,240-II)-(639,240+II),PSET,0,BF
- 10623 NEXT II
- 10630 SCREEN 1,0,1,0:INTERVAL ON
- 10640 SCREEN 0
- 10645 RETURN
- 10650 '
- 10700 *SEFFECT2'////////////////////////////////////////////////////////
- 10712 SCREEN 1,1,3,1:
- 10720 FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
- 10721 LINE(0,240+II)-(639,240-II),PSET,1,B
- 10723 NEXT II
- 10730 MESN=10:GOSUB *MESDSP
- 10740 RETURN
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG :'END
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%:WAIT SWAIT\1+1
- 11150 *RETURN_SNDMSG :RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "goyuku" :' 4 ごゆっくり
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "DOUZO" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.検索 'v1.3 bugfix 93.12.27
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
- 12515 READ MNDN :'当月の日数
- 12516 IF DY>MNDN THEN DY=MNDN :'V1.3!
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 12550 '
- 12600 *年月日変更: 'v1.3 bugfix 93.12.27
- 12601 GOSUB *WEEKN
- 12602 DY=DY+DDEF
- 12604 IF DY>MNDN THEN DY=1 :MDEF=+1
- 12606 IF DY<1 THEN DY=31 :MDEF=-1
- 12610 MN=MN+MDEF
- 12620 IF MN>12 THEN MN=MN-12 :YDEF=+1
- 12630 IF MN<1 THEN MN=12+MN :YDEF=-1
- 12640 YR=YR+YDEF
- 12650 IF YR<0 THEN YR=10000+YR
- 12660 IF YR>9999 THEN YR=YR-10000
- 12665 GOSUB *WEEKN
- 12668 DY$=RIGHT$(STR$(100+DY),2)
- 12670 MN$=RIGHT$(STR$(100+MN),2)
- 12680 YR$=RIGHT$(STR$(10000+YR),4)
- 12690 RETURN
- 12695 '
- 12700 *本日の日付
- 12705 DEF FONT "システム 12ドット"
- 12710 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 12720 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 12730 TY$=RIGHT$(STR$(TY),4)
- 12740 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 12750 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 12760 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 12770 TYMD$=TY$+"."+TM$+"."+TD$
- 12780 LINE(475,5)-(560,17),PSET,0,BF
- 12790 SYMBOL(476,6),TYMD$,.75!,.75!,7
- 12800 SYMBOL(542,6),WKM$,.75!,.75!,CW
- 12810 RETURN
- 12820 '
- 13000 '////////////////////////////////////////////////////////////////////
- 13001 ' LKEYIN v1.1a 全角文字移動改良 1993.02.12 T.Komura
- 13002 '--------- v1.2 挿入モードの変更他全面bugFIX 1993.08.04 T.Komura
- 13003 ' v2.0 グラフィックモード12dot用に改造 1994.07.30 T.Komura
- 13004 ' v2.1 マルチカラムに改造 1994.09.02 T.Komura
- 13005 ' v2.2 編集文字を初期表示するように改造1995.04.29 T.Komura
- 13006 '
- 13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
- 13020 ' 入力 = LX,LY : 表示開始座標 LG : 行数
- 13030 ' L$(ii): 初期文字列 LP : 行ピッチ
- 13040 ' LC : 表示文字色 lb : 非編集行文字色
- 13050 ' LL : 最大文字数 cbc : 背景色
- 13060 ' LINS : 挿入モード=1 出力=L$(ii) : 入力後の文字列
- 13070 '
- 13080 LCSRCL=3:LLINCL=4
- 13090 DEF FONT "システム 12ドット"
- 13100 ' CR MR ML INS DEL BS CAN
- 13120 CONSOLE 0,24,2
- 13130 CC$=CHR$(&H0D,&H1E,&H1F,&H1C,&H1D,&H12,&H7F,&H08,&H18)
- 13140 ' LMG$=SPACE$(LL):LMGD$=SPACE$(LL) :'2.1
- 13150 LA$=INKEY$:IF LA$<>"" THEN 13150
- 13160 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13170 LCSR=0:LGC=1 :'v2.1
- 13180 LINE(LX,LY)-(LX+LL*6+1,LY+11),PSET,%CBC,BF :'v2.2
- 13185 GET@A (LX,LY)-(LX+LL*6+1,LY+13),LMB# :'v2.0
- 13190 FOR LGII=1 TO LG:LXX=LX:LYY=LY+(LGII-1)*LP :'v2.1・・・・ 初期文字列表示
- 13200 PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13210 SYMBOL(LXX,LYY),L$(LGII),.75!,.75!,LB :'v2.1
- 13220 NEXT LGII :'v2.1
- 13230 *SETLG :'----------行セット :'v2.1
- 13240 LYY=LY+(LGC-1)*LP :LM$=L$(LGC) :'v2.1
- 13250 SYMBOL(LXX,LYY),L$(LGC),.75!,.75!,LC :'v2.1
- 13260 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.1
- 13270 LCSRX=LCSR:GOSUB *LCSRDX
- 13280 LMX$=LEFT$(LM$+SPACE$(LL),LL)
- 13290 GOSUB *LMREAD
- 13300 IF LMGB$="1" THEN GOSUB *LCSRDEC
- 13310 *IN1C:' ・・・・・・・・・・ 1 文字入力
- 13320 LA$=INKEY$:IF LA$="" THEN 13320
- 13330 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
- 13340 IF CLA=0 THEN 13360
- 13350 ON CLA GOTO *CR,*MU,*MD,*MR,*ML,*INS,*DEL,*BS,*CAN
- 13360 IF KANF=1 THEN *KANJI
- 13370 IF ALA<&H20 THEN BEEP:GOTO *IN1C
- 13380 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
- 13390 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
- 13400 GOTO *KANJI
- 13410 *ANK :' ・・・・・・・・・・ ANK 文字入力
- 13420 IF LINS=1 THEN 13440
- 13430 MID$(LMX$,LCSR+1,1)=LA$:GOTO 13450
- 13440 LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
- 13450 GOSUB *LCSRINC
- 13460 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13470 GOTO *IN1C
- 13480 *KANJI :' ・・・・・・・・・・ 漢字文字入力
- 13490 ON KANF+1 GOTO 13500,13530
- 13500 KANF=1:KANW$="":KANW$=LA$
- 13510 IF LCSR+1>=LL THEN KANF=0:BEEP
- 13520 GOSUB *LCSRD:GOTO *IN1C
- 13530 KANF=0:KANW$=KANW$+LA$
- 13540 IF LINS=1 THEN 13560
- 13550 MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13570
- 13560 LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
- 13570 GOSUB *LCSR2INC
- 13580 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13590 GOTO *IN1C
- 13600 *CR :GOSUB *LMREAD:GOSUB *LCSRDX '////////// End
- 13610 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0 :'v2.1
- 13620 CONSOLE 0,24,0
- 13630 RETURN:'----------------------------------------------------------
- 13640 *MU :GOSUB *LMREAD2 '////////// up :v2.1
- 13645 *MU2:GOSUB *LMBDSP:LGC=LGC-1:IF LGC<1 THEN LGC=1
- 13655 GOTO *SETLG
- 13660 *MD :GOSUB *LMREAD2 '////////// down :v2.1
- 13665 *MD2:GOSUB *LMBDSP:LGC=LGC+1:IF LGC>LG THEN LGC=LG
- 13675 GOTO *SETLG
- 13680 *MR :GOSUB *LMREAD2 '////////// Right
- 13685 IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *MUD :'v2.1
- 13690 GOSUB *LCSRINC :GOTO *MUD :'v2.1
- 13695 *ML :GOSUB *LMREAD2 '////////// Left
- 13700 IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *MUD :'v2.1
- 13705 GOSUB *LCSRDEC :GOTO *MUD :'v2.1
- 13710 *MUD:IF LCSC=0 THEN GOTO *IN1C '////////// line chg.ctrl:'v2.1
- 13715 IF LCSC=+1 THEN GOSUB *LMREAD2:LCSR=0 :GOTO *MD2
- 13720 IF LCSC=-1 THEN GOSUB *LMREAD2:LCSR=LL:GOTO *MU2
- 13725 *INS:GOSUB *LCSRDX:LINS=1-LINS '////////// Insert
- 13730 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13735 GOSUB *LCSRDX :GOTO *IN1C
- 13740 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
- 13745 IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
- 13750 LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+" "
- 13755 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13760 *BS :GOSUB *LMREAD '////////// BackSpace
- 13765 IF LCSR=0 THEN GOTO *IN1C
- 13770 IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13780
- 13775 GOSUB *LCSRDEC :LDEF=1:GOTO 13780
- 13780 LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+" "
- 13785 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13790 *CAN :LMX$=SPACE$(LL) '////////// Clear
- 13795 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
- 13800 GOSUB *LMREAD :GOTO *IN1C
- 13805 *LMREAD: '////////// Disp Char Read
- 13810 LMGFX$=MID$(LMGDX$,LCSR+1,1)
- 13815 IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
- 13820 *LMREAD1:LMGD$=""
- 13825 FOR II=1 TO KLEN(LMX$)
- 13830 LMG=KTYPE(LMX$,II)
- 13835 IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
- 13840 LMGD$=LMGD$+LMD$
- 13845 NEXT II
- 13850 IF LEN(LMGD$)<=LL THEN 13860
- 13855 LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
- 13860 IF RIGHT$(LMGD$,1)<>"1" THEN 13870
- 13865 MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
- 13870 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
- 13875 IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
- 13880 LMG$=LMX$:LMGDX$=LMGD$:L$(LGC)=LMG$
- 13885 RETURN
- 13890 *LCSRD :LXC=(LX+6*LCSR ):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Disp
- 13895 *LCSRDX:LXC=(LX+6*LCSRX):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Erace
- 13900 LCSRX=LCSR:RETURN
- 13905 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+12),XOR,LCSRCL,BF:RETURN
- 13910 *LCSRINC :LCSC=0:LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1:LCSC=+1
- 13915 GOSUB *LCSRD:RETURN
- 13920 *LCSR2INC:LCSC=0:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2:LCSC=+1
- 13925 GOSUB *LCSRD:RETURN
- 13930 *LCSRDEC :LCSC=0:LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0 :LCSC=-1
- 13935 GOSUB *LCSRD:RETURN
- 13940 *LCSR2DEC:LCSC=0:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2:LCSC=-1
- 13945 GOSUB *LCSRD:RETURN
- 13950 *LMXDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.0 :'v2.1
- 13955 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0
- 13960 SYMBOL(LX,LYY),LMX$,.75!,.75!,LC
- 13965 GOSUB *LCSRDX:RETURN
- 13970 *LMBDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13975 SYMBOL(LX,LYY),LMX$,.75!,.75!,LB:RETURN :'v2.1
- 13980 '-------------------------------------------------------------------
- 14000 'マウス,ウインドウ関係サブルーチン集 v1.0 1995.05.14
- 14010 '--------------------------------------------------
- 14020 '
- 14030 'マウスカーソル形状セット v1.0 1994.02.13
- 14040 *MCDSET
- 14050 MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
- 14060 RETURN
- 14070 *MCREAD
- 14080 RESTORE *MCDATA
- 14090 FOR II=1 TO 3
- 14100 FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
- 14110 READ MC_X(II),MC_Y(II)
- 14120 FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
- 14130 FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
- 14140 NEXT II
- 14150 RETURN
- 14160 *MCDATA
- 14170 '指 ////////////////////////////////////////
- 14171 DATA 0,0
- 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
- 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
- 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
- 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
- 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
- 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
- 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
- 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
- 14180 'コーヒー///////////////////////////////////
- 14181 DATA 7,7
- 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
- 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
- 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
- 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
- 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
- 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
- 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
- 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
- 14190 '待った //////////////////////////////////////
- 14191 DATA 7,7
- 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
- 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
- 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
- 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
- 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
- 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
- 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
- 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
- 14200 '
- 14210 *MCDRAG 'ドラッグ -----------------------------------------------
- 14220 MOUSE 1,X_M,Y_M,1 :'現在位置にカーソルを設定
- 14225 MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
- 14230 MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
- 14235 GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
- 14238 X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
- 14239 Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
- 14240 MOUSE 4,X1,Y1,X2,Y2 :'最大移動域の設定
- 14245 GOSUB *MD_WLINED
- 14250 IF MOUSE(2,0)=-1 THEN 14245 :'枠移動
- 14255 LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC :'枠線消去
- 14260 PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB# :'旧ウインドウ背景表示
- 14265 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB# :'新ウインドウ背景保持
- 14270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW# :'新ウインドウ描画
- 14275 MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
- 14280 *MD_WLINED
- 14285 MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10) :'移動量取得
- 14290 W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
- 14295 W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
- 14300 LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC :'枠線移動
- 14305 LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
- 14310 MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
- 14315 MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
- 14320 RETURN
- 14400 '------------------------------------------------------------------
- 14405 *ボタン座標読み取り
- 14410 RESTORE *ボタン座標:READ SWGN
- 14415 FOR G=1 TO SWGN
- 14420 READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 14425 FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
- 14430 NEXT G
- 14435 RETURN
- 14500 '-----------------------------------------------------------------
- 14505 *BTN_ONOFF:'ボタンON_OFF表示
- 14510 IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
- 14515 BSC=1:BSB=15
- 14520 X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
- 14521 Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
- 14522 CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
- 14523 CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
- 14530 IF BSNDOFF=1 THEN 14540 :' WAIT SWAIT\10+1:GOTO 14540
- 14535 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
- 14540 BSNDOFF=0:RETURN
- 14600 '-----------------------------------------------------------------
- 14610 *MCSELECT:'マウスボタン選択
- 14620 SWERC=0:SWNO=0 :'リセット
- 14630 *クリック待ち
- 14640 IF MOUSE(2,0)=-1 THEN 14680 :'左クリック入力待ち
- 14650 IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN :'右クリックで終了
- 14660 IF MCKEY=1 THEN GOTO 14830 :'MCKEY=1: マウススキャン中断、キー入力受付
- 14670 GOTO *クリック待ち
- 14680 X_M=MOUSE(4,0):Y_M=MOUSE(5,0) :'座標取得
- 14690 FOR IMS=1 TO SWN(G) :'ボタン座標判定
- 14700 IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
- 14710 IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
- 14720 SWNO=IMS:IMS=SWN(G)+1
- 14730 NEXT IMS
- 14735 WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
- 14740 IF (SWPASS=1) OR (SWNO<>0) THEN 14830
- 14750 IF SWNO=0 THEN
- 14760 GOSUB *MCMIS:SWERC=SWERC+1 '誤指定警告表示
- 14770 IF SWERC>5 THEN
- 14780 MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG '誤指定警告音声案内
- 14790 MCN=1:GOSUB *MCDSET
- 14800 ENDIF
- 14810 ENDIF
- 14820 GOTO *クリック待ち
- 14830 SWPASS=0:SW1T=0:MCKEY=0
- 14840 RETURN
- 14850 *MCMIS
- 14860 MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
- 14870 RETURN
- 14880 '
- 14890 '
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15305 IF DCLOCKF=1 THEN GOSUB *DCLOCKD
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 15600 '////////////////////////////////////////////////////////////////////
- 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
- 15610 *DCLOCKREAD:'プログラム先頭で実施
- 15615 RESTORE *DCLOCKDATA
- 15620 FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT
- 15625 FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
- 15630 FOR DGII=1 TO 4:READ DGO(DGII):NEXT
- 15635 RETURN
- 15640 *DGCLOCK:'デジタル時計 -------------------------------
- 15645 G=6:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
- 15650 GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
- 15655 *DGMCSEL
- 15660 GOSUB *MCSELECT:'マウスボタン選択
- 15665 IF SWNO=0 THEN *DGMCSEL
- 15670 IF SWNO<0 THEN SWNO=1:'右クリックで終了
- 15675 ' end drag
- 15680 ON SWNO GOTO *DGS01,*DGS02
- 15685 *DGS02:'drag
- 15690 DCLOCKF=0
- 15692 GOSUB *MCDRAG
- 15694 DCLOCKF=1
- 15695 GOTO *DGMCSEL
- 15700 *DGS01:'end
- 15705 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 15710 DCLOCKF=0
- 15715 GOSUB *DCLOCKCLR
- 15720 SWNO=SWNOX
- 15725 RETURN
- 15730 *DCLOCKLOAD
- 15735 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15740 MOUSE 1,,,0
- 15745 LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 15750 MOUSE 1,,,1:RETURN
- 15760 *DCLOCKCLR
- 15765 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15770 RETURN
- 15775 '
- 15780 *DCLOCKD
- 15785 IF DGINIT=1 THEN 15795
- 15790 FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
- 15795 DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
- 15800 DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
- 15805 DGPT=1-DGPT
- 15810 FOR DGII=1 TO 4
- 15815 IF DG(DGII)=DGM(DGII) THEN 15840
- 15820 FOR DGJJ=1 TO 7
- 15825 IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
- 15826 IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
- 15830 PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
- 15835 NEXT DGJJ
- 15840 NEXT DGII
- 15841 IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
- 15842 PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
- 15843 PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
- 15845 FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
- 15850 RETURN
- 15855 '
- 17000 '////////////////////////////////////////////////////////////////////
- 17002 ' GFS.SUB v1.0 1994.11.02 T.Komura
- 17004 ' v1.2 1995.05.25 for HK2
- 17006 'CLEAR ,,,,1024,300*1024:LOADM "d:\fb386\work\sub\DOS.REX",0
- 17008 'GOSUB *F_初期化:DIM LMB#(1000)
- 17010 'W_X1(g)=0:w_y1(g)=0:GOSUB *F_ファイルセレクタ
- 17012 'output ・F_FILEDRV$ ・F_FILEPATH$ ・F_FILENAME$
- 17014 '
- 17016 *F_初期化:'/////////////////////////////////////////////////////
- 17018 G=2:DEFLNG F :DEF FONT "システム 12ドット"
- 17020 SEACHICNSEL&=0:MEMCPY&=5 :GETFREESPACE&=10:ISFIXED&=15:ISEXIST&=20
- 17022 FINDFIRST&=25 :FINDNEXT&=30:GETDRV&=35 :GETDIR&=40 :F_CTRLB=11
- 17024 F_XMIN=0:F_YMIN=0:F_XMAX=639:F_YMAX=479
- 17026 DIM F_DRV(26) ,F_NAME$(0) ,F_SIZE&(0) ,F_ATTR&(0),F_DATE$(0)
- 17028 DIM F_XB1(30),F_YB1(30),F_XB2(30),F_YB2(30):'20
- 17030 DIM F_ICN(9),F_PAT(((32*32/8)+3)/4+1),F_PAT1(((32*32/8)+3)/4+1)
- 17032 DIM F_PC#(2300)
- 17034 DIM F_DVS#(64*10)
- 17036 F_NUM=0:F_WLD$="":F_STR$=SPACE$(100)
- 17038 F_ICN_SEC&=CALLM(SEACHICNSEL&)
- 17040 RESTORE *F_アイコンデータ:FOR F_I=0 TO 9:READ F_ICN(F_I):NEXT
- 17042 RETURN
- 17044 *F_アイコンデータ
- 17046 DATA 70,0,72,77,0,77,76,78,69,79
- 17048 '-----------------------------------------------------------------------------------
- 17050 '
- 17052 *F_ファイルセレクタ:'main routine //////////////////////////////////////////////////
- 17054 '
- 17055 F_TOP=0:F_DCI=0:F_SPASS=0:SWNOX=SWNO
- 17056 F_FILENAME$="" :F_FILEPATH$="":F_FILEDRV$=""
- 17058 MCN=1:GOSUB *MCDSET:GOSUB *F_画面表示
- 17062 GOSUB *F_ドライブ情報取得:GOSUB *F_ドライブ状況表示
- 17064 GOSUB *F_ファイル情報取得:GOSUB *F_ファイル名表示
- 17066 *F_LOOP
- 17068 GOSUB *MCSELECT:'マウスボタン選択
- 17070 IF SWNO<0 THEN SWNO=1 :'右クリック
- 17072 IF SWNO>F_CTRLB THEN GOTO *F_L1
- 17074 ' exit prev curr next dup lu ld exec can drug key
- 17076 ON SWNO GOTO *F_L9,*F_L2,*F_L3,*F_L4,*F_L5,*F_L6,*F_L7,*F_L8,*F_L9,*F_L10,*F_L11
- 17078 *F_L1 'リスト --------------------------------------------------
- 17080 F_I=F_TOP+SWNO-F_CTRLB:B=SWNO:IF F_I>F_NUM GOTO *F_LOOP
- 17082 IF F_ATTR&(F_I) = &H10 THEN
- 17084 F_CMD$="cd "+F_NAME$(F_I):SHELL F_CMD$:F_L1F=1:GOTO *F_L3A
- 17086 ELSE
- 17087 LINE(W_X1(G)+B_X1(G,B),W_Y1(G)+B_Y1(G,B))-(W_X1(G)+B_X2(G,B),W_Y1(G)+B_Y2(G,B)),XOR,7,BF
- 17088 F_FILENAME$=LEFT$(F_NAME$(F_I)+SPACE$(14),12)
- 17090 F_X=W_X1(G)+88:F_Y=W_Y1(G)+200:F_M$=F_FILENAME$
- 17092 LINE(F_X,F_Y)-(F_X+6*12,F_Y+12),PSET,%4,BF
- 17094 SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0:WAIT SWAIT/2
- 17095 LINE(W_X1(G)+B_X1(G,B),W_Y1(G)+B_Y1(G,B))-(W_X1(G)+B_X2(G,B),W_Y1(G)+B_Y2(G,B)),XOR,7,BF
- 17096 ENDIF
- 17098 GOTO *F_LOOP
- 17100 *F_L2 '< -------------------------------------------------------
- 17102 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 17104 IF F_DRV(0)-1<>0 THEN F_DRV(0)=F_DRV(0)-1 ELSE F_DRV(0)=26
- 17106 IF F_DRV(F_DRV(0))<0 THEN 17104
- 17108 GOSUB *DRVDISP: F_BTN_ATR=MOUSE(3,0):F_BTN_ATR=0:F_I=0
- 17112 WHILE F_BTN_ATR=0 AND F_I<130:F_I=F_I+1:F_BTN_ATR=MOUSE(3,0):WAIT 1:WEND
- 17114 IF F_BTN_ATR=0 THEN *F_L3A ELSE *F_L3B
- 17116 *F_L3 'DRV -----------------------------------------------------
- 17118 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 17119 *F_L3A :F_CMD$=CHR$(&H40+F_DRV(0))+":":SHELL F_CMD$:GOSUB *F_ドライブ状況表示
- 17122 F_TOP=0:GOSUB *F_ファイル情報取得:GOSUB *F_ファイル名表示
- 17124 *F_L3B :IF F_L1F=1 THEN F_L1F=0 :GOTO *F_LOOP
- 17125 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF :GOTO *F_LOOP
- 17128 *F_L4 '> -------------------------------------------------------
- 17130 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 17132 IF F_DRV(0)+1<>27 THEN F_DRV(0)=F_DRV(0)+1 ELSE F_DRV(0)=1
- 17134 IF F_DRV(F_DRV(0))<0 THEN 17132
- 17136 GOSUB *DRVDISP: F_BTN_ATR=MOUSE(3,0):F_BTN_ATR=0:F_I=0
- 17140 WHILE F_BTN_ATR=0 AND F_I<130:F_I=F_I+1:F_BTN_ATR=MOUSE(3,0):WAIT 1:WEND
- 17142 IF F_BTN_ATR=0 THEN *F_L3A ELSE *F_L3B
- 17144 *F_L5 '親 ------------------------------------------------------
- 17146 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 17148 CALLM GETDIR&,0,VARPTR(F_STR$)
- 17150 IF LEFT$(F_STR$,INSTR(F_STR$,CHR$(0)))=CHR$(0) THEN 17154
- 17152 SHELL "cd .."
- 17154 GOTO *F_L3A
- 17158 *F_L6 '↑ ------------------------------------------------------
- 17160 B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 17162 IF F_TOP=0 THEN 17166 ELSE F_TOP=F_TOP-1
- 17164 GOSUB *F_下シフト:F_I=1 :GOSUB *F_指定行表示
- 17166 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF :GOTO *F_LOOP
- 17170 *F_L7 '↓ ------------------------------------------------------
- 17172 B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 17174 IF F_TOP+1>=F_NUM-10 THEN 17178 ELSE F_TOP=F_TOP+1
- 17176 GOSUB *F_上シフト:F_I=10:GOSUB *F_指定行表示
- 17178 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF :GOTO *F_LOOP
- 17182 *F_L8 '実行 ----------------------------------------------------
- 17184 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 17186 ' IF F_FILENAME$="" THEN BST(G,B)=0:GOSUB *BTN_ONOFF:GOTO *F_LOOP
- 17188 CALLM GETDIR&,0,VARPTR(F_STR$)
- 17190 F_FILEPATH$="\"+LEFT$(F_STR$,INSTR(F_STR$,CHR$(0))-1)
- 17192 F_FILEDRV$=CHR$(&H40+F_DRV(0)) :GOTO *F_BYE
- 17196 *F_L9 '取消 ----------------------------------------------------
- 17198 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 17200 F_FILENAME$="":F_FILEPATH$="":F_SPASS=1 :GOTO *F_BYE
- 17202 *F_L10 'ドラッグ -----------------------------------------------
- 17204 GOSUB *MCDRAG :GOTO *F_LOOP
- 17208 *F_L11 '文字 ---------------------------------------------------
- 17210 LX=W_X1(G)+88:LY=W_Y1(G)+200:LL=12:LG=1:LP=1:LC=4:CBC=4
- 17212 L$(1)=F_FILENAME$:LINS=1:GOSUB *LKEYIN
- 17214 F_FILENAME$=L$(1):SYMBOL(LX,LY),F_FILENAME$,.75!,.75!,0
- 17218 GOTO *F_LOOP
- 17220 *F_BYE '--------------------------------------------------------
- 17222 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 17223 SWNO=SWNOX
- 17224 RETURN
- 17226 *F_画面表示'////////////////////////////////////////
- 17228 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 17230 MOUSE 1,,,0:LOAD@ TIFDRV$+"\hk2fs.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 17231 SYMBOL(W_X1(G)+91,W_Y1(G)+4),F_SELMES$,.75!,.75!,1,,,1
- 17232 FOR F_II=0 TO 9
- 17234 X1=W_X1(G)+96+(F_II MOD 5)*33:X2=X1+31 :Y1=W_Y1(G)+51+(F_II\5)*33:Y2=Y1+31
- 17238 GET@A(X1,Y1)-(X2,Y2),F_DVS#,64*F_II
- 17240 NEXT F_II
- 17242 RETURN
- 17244 *F_ドライブ状況表示:'///////////////////////////////
- 17246 GOSUB *DRVDISP
- 17248 F_FREE=CALLM(GETFREESPACE&,0)
- 17250 IF F_FREE<0 THEN F_M$="Not Ready":GOTO 17260
- 17252 IF F_FREE>=0 AND F_FREE<1024 THEN F_MW$=STR$(F_FREE)+"Byte"
- 17254 IF F_FREE>=1024 AND F_FREE<1024*1024 THEN F_MW$=STR$(INT(F_FREE/1024*10)/10)+" KB "
- 17256 IF F_FREE>1024*1024 THEN F_MW$=STR$(INT(F_FREE/1024/1024*10)/10)+" MB "
- 17258 F_M$=RIGHT$(SPACE$(6)+F_MW$,10)
- 17260 F_X=W_X1(G)+20:F_Y=W_Y1(G)+88
- 17262 LINE(F_X,F_Y)-(F_X+6*10,F_Y+12),PSET,%5,BF :SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
- 17266 LINE(W_X1(G)+86,W_Y1(G)+43)-(W_X1(G)+327,W_Y1(G)+190),PSET,%5,BF
- 17268 CALLM GETDIR&,0,VARPTR(F_STR$) :F_I=INSTR(F_STR$,CHR$(0)):F_J=F_I
- 17272 WHILE F_I>1 AND MID$(F_STR$,F_I,1)<>"\":F_I=F_I-1:WEND
- 17274 F_X=W_X1(G)+88:F_Y=W_Y1(G)+25:F_M$=F_STR$
- 17276 LINE(F_X,F_Y)-(F_X+238 ,F_Y+12),PSET,%4,BF :SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
- 17280 RETURN
- 17282 *F_ファイル名表示:'/////////////////////////////////
- 17284 F_I=1
- 17286 LINE(W_X1(G)+86,W_Y1(G)+43)-(W_X1(G)+327,W_Y1(G)+190),PSET,%6,BF
- 17288 WHILE F_I<=10 AND F_I+F_TOP<F_NUM
- 17290 GOSUB *F_指定行表示 :SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
- 17294 F_I=F_I+1
- 17296 WEND
- 17298 GOSUB *F_カーソル表示
- 17300 RETURN
- 17302 *F_ドライブ情報取得:'///////////////////////////////
- 17304 FOR F_I=1 TO 26:F_DRV(F_I)=CALLM(ISEXIST&,F_I):NEXT
- 17306 FOR F_I=1 TO 16:F_DRV(F_I)=CALLM(ISEXIST&,F_I)
- 17310 IF F_DRV(F_I)>=0 THEN
- 17312 F_DRV(F_I)=INP(&H31D8+F_I*4,1):F_J=CALLM(ISFIXED&,F_I)
- 17314 IF F_DRV(F_I)=2 AND F_J=0 THEN F_DRV(F_I)=6
- 17316 IF F_DRV(F_I)=255 AND F_J=0 THEN F_DRV(F_I)=7
- 17318 IF F_DRV(F_I)=255 THEN F_DRV(F_I)=2
- 17320 ENDIF
- 17322 NEXT
- 17324 F_DRV(17)=8
- 17326 FOR F_I=18 TO 26
- 17328 IF F_DRV(F_I)>=0 THEN F_DRV(F_I)=9
- 17330 NEXT
- 17332 F_DRV(0)=CALLM(GETDRV&,VARPTR(F_STR$))
- 17334 RETURN
- 17336 *F_ファイル情報取得:'////////////////////////////////
- 17338 MCN=2:GOSUB *MCDSET
- 17340 F_NUM=0:F_WLD$="*.*"+CHR$(0)
- 17342 F_I=CALLM(FINDFIRST&,VARPTR(F_WLD$),&H10,VARPTR(F_STR$),VARPTR(F_ATTR&(0)),VARPTR(F_SIZE&(0)),VARPTR(F_DATE$(0)))
- 17344 IF F_I>=0 THEN
- 17346 WHILE F_I>=0
- 17348 F_I=CALLM(FINDNEXT&,VARPTR(F_STR$),VARPTR(F_ATTR&(0)),VARPTR(F_SIZE&(0)),VARPTR(F_DATE$(0))):F_NUM=F_NUM+1
- 17350 WEND
- 17352 ELSE
- 17354 F_NUM=0:GOTO 17380
- 17356 ENDIF
- 17358 ERASE F_NAME$,F_SIZE&,F_ATTR&,F_DATE$
- 17360 DIM F_NAME$(F_NUM),F_SIZE&(F_NUM),F_ATTR&(F_NUM),F_DATE$(F_NUM)
- 17362 F_I=1
- 17364 CALLM FINDFIRST&,VARPTR(F_WLD$),&H10,VARPTR(F_STR$),VARPTR(F_ATTR&(F_I)),VARPTR(F_SIZE&(F_I)),VARPTR(F_J)
- 17366 GOSUB *F_情報整理
- 17368 F_I=2
- 17370 WHILE F_I<=F_NUM
- 17372 CALLM FINDNEXT&,VARPTR(F_STR$),VARPTR(F_ATTR&(F_I)),VARPTR(F_SIZE&(F_I)),VARPTR(F_J)
- 17374 GOSUB *F_情報整理:F_I=F_I+1
- 17376 WEND
- 17378 GOSUB *F_ソート
- 17380 MCN=1:GOSUB *MCDSET
- 17382 RETURN
- 17384 *F_情報整理:'////////////////////////////////////////////
- 17386 F_NAME$(F_I)=LEFT$(F_STR$,INSTR(F_STR$,CHR$(0))-1)
- 17388 F_DATE$(F_I)=STR$(F_J\(2^25)+80)+"-"
- 17390 F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^21) AND 15)),2)+"-"
- 17392 F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^16) AND 31)),2)+" "
- 17394 F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^11) AND 31)),2)+":"
- 17396 F_DATE$(F_I)=F_DATE$(F_I)+RIGHT$(STR$(100+(F_J\(2^5) AND 63)),2)
- 17398 RETURN
- 17400 *F_ソート:'/////////////////////////////////////////////
- 17402 FOR F_I=1 TO F_NUM
- 17404 IF F_ATTR&(F_I)=&H10 THEN F_NAME$(F_I)=CHR$(1)+F_NAME$(F_I)
- 17406 NEXT
- 17408 F_N=F_NUM
- 17410 FOR F_CHECK=F_N/2 TO 1 STEP -1
- 17412 GOSUB *F_下方移動
- 17414 NEXT
- 17416 WHILE F_N>1
- 17418 SWAP F_NAME$(F_N),F_NAME$(1):SWAP F_SIZE&(F_N),F_SIZE&(1)
- 17420 SWAP F_DATE$(F_N),F_DATE$(1):SWAP F_ATTR&(F_N),F_ATTR&(1)
- 17422 F_N=F_N-1
- 17424 F_CHECK=1:GOSUB *F_下方移動
- 17426 WEND
- 17428 FOR F_I=1 TO F_NUM
- 17430 IF F_ATTR&(F_I)=&H10 THEN F_NAME$(F_I)=RIGHT$(F_NAME$(F_I),LEN(F_NAME$(F_I))-1)
- 17432 NEXT
- 17434 F_J=1
- 17436 FOR F_I=1 TO F_NUM
- 17438 IF F_NAME$(F_I)<>"." AND F_NAME$(F_I)<>".." THEN
- 17440 F_NAME$(F_J)=F_NAME$(F_I):F_ATTR&(F_J)=F_ATTR&(F_I)
- 17442 F_DATE$(F_J)=F_DATE$(F_I):F_SIZE&(F_J)=F_SIZE&(F_I)
- 17444 F_J=F_J+1
- 17446 ENDIF
- 17448 NEXT
- 17450 F_NUM=F_J
- 17452 RETURN
- 17454 *F_下方移動
- 17456 F_I=F_CHECK
- 17458 F_J=F_I*2:F_END=0
- 17460 WHILE F_J<=F_N AND F_END=0
- 17462 IF F_J<F_N THEN IF F_NAME$(F_J)<F_NAME$(F_J+1) THEN F_J=F_J+1
- 17464 IF F_NAME$(F_I)>=F_NAME$(F_J) THEN
- 17466 F_END=1
- 17468 ELSE
- 17470 SWAP F_NAME$(F_I),F_NAME$(F_J):SWAP F_DATE$(F_I),F_DATE$(F_J)
- 17472 SWAP F_ATTR&(F_I),F_ATTR&(F_J):SWAP F_SIZE&(F_I),F_SIZE&(F_J)
- 17474 F_I=F_J:F_J=F_I*2
- 17476 ENDIF
- 17478 WEND
- 17480 RETURN
- 17482 *DRVDISP:'ドライブ表示:'/////////////////////////////////////
- 17484 F_X=W_X1(G)+26:F_Y=W_Y1(G)+44 :LINE(F_X,F_Y)-(F_X+31,F_Y+31),PSET,%4,BF
- 17488 PUT@A(F_X,F_Y)-(F_X+31,F_Y+31),F_DVS#,,,,,64*F_DRV(F_DRV(0))
- 17490 PUT@(F_X+5,F_Y+5)-(F_X+28,F_Y+28),F_PAT,,0
- 17492 F_X=W_X1(G)+28:F_Y=W_Y1(G)+44:F_M$=CHR$((F_DRV(0)+&H40))
- 17494 COLOR 7,0,0:SYMBOL(F_X,F_Y),F_M$,.75!,.75!,7,,,&H8
- 17496 RETURN
- 17498 *F_カーソル表示:'////////////////////////////////////////////
- 17500 IF F_NUM=0 THEN RETURN
- 17502 XDC1 =W_X1(G)+334:XDC2=W_X1(G)+344
- 17504 YDC1 =W_Y1(G)+56+INT(121*(F_TOP/F_NUM))
- 17506 YDC2 =W_Y1(G)+56+INT(121*((F_TOP+11)/F_NUM))
- 17508 IF YDC2>W_Y1(G)+177 THEN YDC2=W_Y1(G)+177
- 17510 IF F_DCI=1 THEN 17512 ELSE F_DCI=1:GOTO 17520
- 17512 YDC1X=W_Y1(G)+56+INT(121*(F_TOPX/F_NUMX))
- 17514 YDC2X=W_Y1(G)+56+INT(121*((F_TOPX+11)/F_NUMX))
- 17516 IF YDC2X>W_Y1(G)+177 THEN YDC2X=W_Y1(G)+177
- 17518 LINE(XDC1,YDC1X+1)-(XDC2,YDC2X-1),XOR,%4,BF
- 17520 LINE(XDC1,YDC1+1) -(XDC2,YDC2-1) ,XOR,%4,BF
- 17522 F_TOPX=F_TOP :F_NUMX=F_NUM:RETURN
- 17524 *F_上シフト:'///////////////////////////////////////////////
- 17526 X1=W_X1(G)+86:X2=W_X1(G)+327:Y=W_Y1(G)+45
- 17528 GET@A(X1,Y+14*1)-(X2,Y+14*10),F_PC#
- 17530 LINE (X1,Y+14*9)-(X2,Y+14*10),PSET,%6,BF
- 17532 PUT@A(X1,Y )-(X2,Y+14*9 ),F_PC#
- 17534 GOSUB *F_カーソル表示:RETURN
- 17536 *F_下シフト:'///////////////////////////////////////////////
- 17538 X1=W_X1(G)+86:X2=W_X1(G)+327:Y=W_Y1(G)+45
- 17540 GET@A(X1,Y )-(X2,Y+14*9 ),F_PC#
- 17542 LINE (X1,Y )-(X2,Y+14*1 ),PSET,%6,BF
- 17544 PUT@A(X1,Y+14*1)-(X2,Y+14*10),F_PC#
- 17546 GOSUB *F_カーソル表示:RETURN
- 17548 *F_指定行表示:'/////////////////////////////////////////////
- 17550 F_X=W_X1(G)+88:F_Y=W_Y1(G)+F_I*14+32
- 17552 IF F_ATTR&(F_I+F_TOP)=&H10 THEN
- 17554 F_MW1$="<"+LEFT$(F_NAME$(F_I+F_TOP)+SPACE$(20),12)+">"
- 17556 F_MW2$=SPACE$(8)+F_DATE$(F_I+F_TOP)
- 17558 F_M$=F_MW1$+F_MW2$
- 17560 ELSE
- 17562 F_MW1$=" "+LEFT$(F_NAME$(F_I+F_TOP)+SPACE$(14),12)
- 17564 F_MW2$=" "+RIGHT$(SPACE$(14)+STR$(F_SIZE&(F_I+F_TOP)),8)+F_DATE$(F_I+F_TOP)
- 17566 F_M$=F_MW1$+F_MW2$
- 17568 ENDIF
- 17570 SYMBOL(F_X,F_Y),F_M$,.75!,.75!,0
- 17572 RETURN
- 17574 '
- 18000 '------------------------------------------------------------------
- 18005 *HKHELP:' Copyrigit(C) T.Komura / HK2 /
- 18010 ' Version 1.0 1994.07.30 / helpプログラム /
- 18011 ' Version 2.0 1995.07.30 HK2ドラッグ対応
- 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 18016 G=5:SWNOX=SWNO:DOCDC=6:DOCBC=8
- 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
- 18026 MCN=1:GOSUB *MCDSET
- 18030 GOSUB *DOC初期表示
- 18035 *DC_MSINSEL
- 18040 SWPASS=1:GOSUB *MCSELECT:'マウスボタン選択
- 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
- 18043 IF SWNO<0 THEN SWNO=5:'右クリックで終了
- 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
- 18050 IF SWNO=5 THEN GOTO *SDC_05
- 18055 IF SWNO=6 THEN GOTO *SDC_06
- 18060 IF SWNO=7 THEN GOTO *SDC_07
- 18065 GOTO *DOCCTRL
- 18070 *DOCCTRL
- 18075 B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 18080 DCCD=SWNO:GOSUB *DOC表示制御
- 18085 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 18090 GOTO *DC_MSINSEL
- 18095 *SDC_06: GOSUB *MCDRAG :GOTO *DC_MSINSEL
- 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
- 18105 *SDC_05:'終了
- 18110 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 18115 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18120 DOCCS=0:SWNO=SWNOX
- 18122 RETURN:'///////////////////////////////////////////////////
- 18125 '
- 18130 'sub routine---------------------------------------------
- 18135 *DOCTIFDSP
- 18137 MOUSE 1,,,0
- 18140 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18145 LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
- 18165 MOUSE 1,,,1:GOSUB *DOC名称表示
- 18170 RETURN
- 18175 *DOCFREAD:'helpファイル読み込み
- 18177 MCN=2:GOSUB *MCDSET
- 18180 DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
- 18185 IF EOF(1)=-1 THEN 18200
- 18190 DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
- 18195 GOTO 18185
- 18200 CLOSE #1:RETURN
- 18205 *DOC指定行表示
- 18210 GOSUB *DOCカーソル表示
- 18220 FOR DN=SDN TO EDN
- 18225 XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
- 18230 SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
- 18235 DCL=DCL+1
- 18240 NEXT DN:RETURN
- 18245 *DOC初期表示
- 18250 SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
- 18255 RETURN
- 18260 *DOC表示制御:'///////////////////////////////////////
- 18265 ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
- 18270 *DCC1:'------ 前行
- 18275 DSP=DSP-1 :IF DSP<1 THEN DSP=1 :RETURN
- 18280 SDN=DSP :GOSUB *DOC下シフト
- 18285 EDN=SDN :DCL=0 :GOSUB *DOC指定行表示 :RETURN
- 18290 *DCC2:'------ 次行
- 18295 DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
- 18300 SDN=DSP+23: GOSUB *DOC上シフト
- 18305 EDN=SDN :DCL=23:GOSUB *DOC指定行表示 :RETURN
- 18310 *DCC3:'------ 前頁
- 18315 DSP=DSP-24:IF DSP<1 THEN DSP=1
- 18320 GOTO *DCC51
- 18325 *DCC4:'------ 次頁
- 18330 DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18335 GOTO *DCC51
- 18340 *DCC5:'------ カーソル指定
- 18345 DSP=((INT(DOCN*DOCR))\24)*24+1
- 18350 IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18355 *DCC51
- 18360 SDN=DSP :EDN=SDN+23
- 18365 IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
- 18370 LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
- 18375 DCL=0:GOSUB *DOC指定行表示 :RETURN
- 18380 '------------------------------------------------------
- 18385 *DOC上シフト
- 18386 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18390 GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
- 18395 LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
- 18400 PUT@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18405 RETURN
- 18410 *DOC下シフト
- 18411 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18415 GET@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18420 LINE (X1,Y1 )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
- 18425 PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
- 18430 RETURN
- 18435 *DOCカーソル表示
- 18440 XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
- 18445 YDC1 =W_Y1(G)+53+INT(233*((DSP-1) /DOCN))
- 18450 YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
- 18451 A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A THEN YDC2=A-1
- 18455 YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
- 18460 YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
- 18461 A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
- 18465 IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
- 18470 LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
- 18475 LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
- 18480 DSPX=DSP :RETURN
- 18485 *DOC名称表示
- 18490 XDC=W_X1(G)+427:YDC=W_Y1(G)+7
- 18495 DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
- 18500 SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
- 18505 RETURN
- 18810 *DC_他エリア判定
- 18830 IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
- 18835 IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
- 18840 DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
- 18845 RETURN
- 18850 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19355 LINE(0,465)-(639,479),PSET,0,BF
- 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LINE(0,465)-(639,479),PSET,0,BF
- 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "HKCNF.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20101 DEF FONT "システム 12ドット"
- 20105 LOAD@ TIFDRV$+"\HK2CFG.tif",(0,0)
- 20110 G=1:B=6:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 20120 MESN=1:GOSUB *MESDSP
- 20130 ' INTERVAL ON
- 20140 RETURN
- 20190 '
- 20200 *設定内容一覧表示
- 20205 IIS=1:IIE=30:' v2.0
- 20220 FOR II=IIS TO IIE
- 20222 CFID$=CFI$(II):IF II=21 THEN 20250
- 20225 IF II=22 THEN CFNO=II:GOSUB *CFION_OFFDEC
- 20226 IF II=20 THEN CFNO=II:GOSUB *CFICHRDEC
- 20227 IF II=24 OR II=25 THEN CFNO=II:GOSUB *CFION_OFFDEC
- 20228 IF II=27 THEN CFNO=II:GOSUB *CFION_OFFDEC
- 20229 IF II=30 THEN CFNO=II:GOSUB *CFIYMDDEC
- 20230 CFNO=II
- 20240 IF CFNO=30 THEN GOSUB *内容表示2 ELSE GOSUB *内容表示
- 20250 NEXT II
- 20260 RETURN
- 20270 '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 20300 *CFION_OFFDEC
- 20310 IF CFI$(CFNO)="1" THEN CFID$=" ON " ELSE CFID$="OFF"
- 20320 RETURN
- 20380 '
- 20400 *CFICHRDEC
- 20410 CFID$=RIGHT$(" "+CFI$(CFNO),3)
- 20412 RETURN
- 20418 '
- 20420 *CFICNENC
- 20422 WAITN=VAL(CFID$):CFI$(20)=RIGHT$(STR$(WAITN),LEN(STR$(WAITN))-1)
- 20424 RETURN
- 20428 '
- 20430 *CFICHRDEC2
- 20440 CFID$=RIGHT$(" "+CFI$(CFNO),2)
- 20442 RETURN
- 20450 *CFICHRENC2
- 20452 CFISDY=VAL(CFID$):CFI$(50)=RIGHT$(STR$(100+CFISDY),2)
- 20454 RETURN
- 20458 '
- 20460 *CFIYMDDEC
- 20470 CFID$=SSY$+" "+SSM$+" "+SSD$
- 20472 RETURN
- 20480 *CFIYMDENC
- 20482 CFI$(30)=SSY$+SSM$+SSD$
- 20484 RETURN
- 20488 '
- 20500 *環境設定入力
- 20505 MESN=3:GOSUB *MESDSP
- 20510 CFID$=CFI$(CFNO)
- 20520 LX=CFDX(CFNO):LY=CFDY(CFNO):LL=CFDL(CFNO):LG=1:LP=1:LC=3:CBC=0
- 20530 L$(1)=CFID$:LINS=1:GOSUB *LKEYIN
- 20550 CFID$=L$(1):GOSUB *内容表示
- 20555 IF CFNO>15 THEN GOSUB *スペースカット
- 20560 CFI$(CFNO)=CFID$
- 20570 RETURN
- 20580 '
- 20600 *SNDMF設定
- 20610 MESN=4:GOSUB *MESDSP
- 20620 IF CFI$(CFNO)="1" THEN 20624 ELSE 20625
- 20624 CFI$(CFNO)="0" :MESN=5:GOSUB *MESDSP:GOTO 20630
- 20625 CFI$(CFNO)="1" :MESN=4:GOSUB *MESDSP:GOTO 20630
- 20630 WAIT 60:GOSUB *CFION_OFFDEC
- 20640 GOSUB *内容表示
- 20670 RETURN
- 20680 '
- 20700 *SNDMFウエイト設定
- 20720 WAITN=VAL(CFI$(20))
- 20730 IF CFNO=20 THEN WAITN=WAITN+10:GOTO 20750
- 20740 IF CFNO=21 THEN WAITN=WAITN-10:GOTO 20750
- 20750 IF WAITN>990 THEN WAITN=990
- 20752 IF WAITN<10 THEN WAITN=10
- 20760 CFID$=RIGHT$(" "+STR$(WAITN),3)
- 20770 GOSUB *CFICNENC
- 20780 GOSUB *内容表示
- 20790 RETURN
- 20795 '
- 20800 *スペースカット
- 20810 SPP=INSTR(CFID$," ")
- 20820 IF SPP<2 THEN RETURN
- 20830 CFID$=LEFT$(CFID$,SPP-1)
- 20840 RETURN
- 20850 '
- 20900 *DICF設定
- 20910 MESN=4:GOSUB *MESDSP
- 20920 IF CFI$(CFNO)="1" THEN 20924 ELSE 20925
- 20924 CFI$(CFNO)="0" :MESN=13:GOSUB *MESDSP:GOTO 20930
- 20925 CFI$(CFNO)="1" :MESN=12:GOSUB *MESDSP:GOTO 20930
- 20930 WAIT 60:GOSUB *CFION_OFFDEC
- 20940 GOSUB *内容表示
- 20970 RETURN
- 20980 '
- 21000 *パス設定
- 21010 MESN=18:GOSUB *MESDSP
- 21020 CFID$=CFI$(CFNO):DRV$=LEFT$(CFID$,2)
- 21025 SHELL DRV$: SHELL "CHDIR "+CFID$
- 21040 G=2:GOSUB *F_ファイルセレクタ
- 21045 DRV$=LEFT$(PRGDRV$,2) :'v2.1L10j
- 21050 SHELL DRV$:SHELL "CHDIR "+PRGDRV$
- 21055 IF F_SPASS=1 THEN 21085 :'v2.1L10jで21045から移動
- 21060 CFID$=F_FILEDRV$+":"+F_FILEPATH$:GOSUB *内容表示
- 21070 GOSUB *スペースカット
- 21080 CFI$(CFNO)=CFID$
- 21085 RETURN
- 21090 '
- 21200 *SCALC設定
- 21210 MESN=4:GOSUB *MESDSP
- 21220 IF CFI$(CFNO)="1" THEN 21224 ELSE 21225
- 21224 CFI$(CFNO)="0" :MESN=17:GOSUB *MESDSP:GOTO 21230
- 21225 CFI$(CFNO)="1" :MESN=16:GOSUB *MESDSP:GOTO 21230
- 21230 WAIT 60:GOSUB *CFION_OFFDEC
- 21240 GOSUB *内容表示
- 21270 RETURN
- 21280 '
- 21300 *月次開始日設定
- 21310 GOSUB *環境設定入力
- 21340 CFID$=LMG$:GOSUB *CFICHRENC2
- 21350 IF CFISDY<1 OR CFISDY>31 THEN BEEP:GOTO 21310
- 21360 GOSUB *CFICHRDEC2
- 21380 GOSUB *内容表示
- 21390 RETURN
- 21395 '
- 21500 *残高起算日設定
- 21505 CFIYMD$=CFI$(30)
- 21510 MESN=3:GOSUB *MESDSP
- 21520 '年
- 21530 LX=CFDX(CFNO):LY=CFDY(CFNO):LL=4:LG=1:LP=1:LC=3:CBC=0
- 21532 L$(1)=SSY$:LINS=0:GOSUB *LKEYIN
- 21534 SSY$=L$(1):SSY=VAL(SSY$):SSY$=RIGHT$(STR$(10000+SSY),4)
- 21536 CFID$=SSY$:GOSUB *内容表示2
- 21538 IF SSY<1 THEN BEEP:GOTO 21530
- 21540 '月
- 21550 LX=CFDX(CFNO)+9*6:LY=CFDY(CFNO):LL=2:LG=1:LP=1:LC=3:CBC=0
- 21552 L$(1)=SSM$:LINS=0:GOSUB *LKEYIN
- 21554 SSM$=L$(1):SSM=VAL(SSM$):SSM$=RIGHT$(STR$(100+SSM),2)
- 21556 CFID$=SSM$:GOSUB *内容表示2
- 21558 IF SSM<1 OR SSM>12 THEN BEEP:GOTO 21550
- 21560 '日
- 21570 LX=CFDX(CFNO)+15*6:LY=CFDY(CFNO):LL=2:LG=1:LP=1:LC=3:CBC=0
- 21572 L$(1)=SSD$:LINS=0:GOSUB *LKEYIN
- 21574 SSD$=L$(1):SSD=VAL(SSD$):SSD$=RIGHT$(STR$(100+SSD),2)
- 21576 CFID$=SSD$:GOSUB *内容表示2
- 21578 IF SSD<1 OR SSD>31 THEN BEEP:GOTO 21570
- 21580 '
- 21592 IF CFI$(30)<>CFIYMD$ THEN CFIYMDCF=1 ELSE CFIYMDCF=0
- 21595 RETURN
- 21598 '
- 22000 *内容表示
- 22005 LX1=CFDX(CFNO):LX2=LX1+CFDL(CFNO)*6
- 22006 LY1=CFDY(CFNO):LY2=LY1+11
- 22010 LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
- 22020 SYMBOL(LX1,LY1),CFID$,.75!,.75!,%CFDC(CFNO)
- 22030 RETURN
- 22040 '
- 22100 *内容表示2
- 22104 GOSUB *CFIYMDDEC:GOSUB *CFIYMDENC
- 22105 LY1=CFDY(CFNO):LY2=CFDY(CFNO)+11
- 22110 LX1=CFDX(CFNO) :LX2=LX1+4*6: LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
- 22112 LX1=CFDX(CFNO)+9*6 :LX2=LX1+2*6: LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
- 22114 LX1=CFDX(CFNO)+15*6:LX2=LX1+2*6: LINE(LX1,LY1)-(LX2,LY2),PSET,0,BF
- 22120 LX1=CFDX(CFNO):SYMBOL(LX1,LY1),CFID$,.75!,.75!,%CFDC(CFNO)
- 22130 RETURN
- 22140 '
- 23400 *累計額演算
- 23410 IF TRG1#<TRG1D# THEN 23500
- 23420 FOR II=1 TO 15: TDYN1#(II)=TDYN1#(II) +VAL(DYN$(II)) :NEXT II
- 23430 FOR II=1 TO 16:TSDYN1#(II)=TSDYN1#(II)+VAL(SDYN$(II)):NEXT II
- 23440 FOR II=1 TO 3 :TTL1I#=TTL1I#+VAL(DYN$(II)) :NEXT II
- 23450 FOR II=4 TO 15:TTL1O#=TTL1O#+VAL(DYN$(II)) :NEXT II
- 23460 TTL1R#=TTL1I#-TTL1O#
- 23470 SDYN$(17)=RIGHT$(SPACE$(10)+STR$(TTL1R#),10)
- 23480 '
- 23500 IF TRG2=TRG2D THEN GOSUB *TRG2CLR
- 23510 FOR II=1 TO 15: TDYN2#(II)=TDYN2#(II) +VAL(DYN$(II)) :NEXT II
- 23520 FOR II=1 TO 16:TSDYN2#(II)=TSDYN2#(II)+VAL(SDYN$(II)):NEXT II
- 23530 FOR II=1 TO 3 :TTL2I#=TTL2I#+VAL(DYN$(II)) :NEXT II
- 23540 FOR II=4 TO 15:TTL2O#=TTL2O#+VAL(DYN$(II)) :NEXT II
- 23550 TTL2R#=TTL2I#-TTL2O#
- 23560 SDYN$(18)=RIGHT$(SPACE$(10)+STR$(TTL2R#),10)
- 23570 RETURN
- 23580 '
- 23600 *TRG2CLR
- 23610 FOR II=1 TO 15: TDYN2#(II)=0:NEXT II
- 23620 FOR II=1 TO 16:TSDYN2#(II)=0:NEXT II
- 23630 TTL2I#=0:TTL2O#=0
- 23640 RETURN
- 23650 *TRG1CLR
- 23660 FOR II=1 TO 15: TDYN1#(II)=0:NEXT II
- 23670 FOR II=1 TO 16:TSDYN1#(II)=0:NEXT II
- 23680 TTL1I#=0:TTL1O#=0
- 23690 RETURN
- 23695 '
- 23700 *HKTOTAL書き込み
- 23710 FOR II=1 TO 15
- 23720 TDYN1$(II)=RIGHT$(SPACE$(10)+STR$(TDYN1#(II)),10)
- 23730 TDYN2$(II)=RIGHT$(SPACE$(10)+STR$(TDYN2#(II)),10)
- 23740 NEXT II
- 23785 GOSUB *HKTFPUT
- 23790 RETURN
- 23795 '
- 23800 *総計ファイル作成
- 23802 MESN=19:GOSUB *MESDSP
- 23805 CMES$="残高計算実行":GOSUB *確認
- 23806 ON CAUNO GOTO 23810,23930
- 23810 MESN=21:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 23815 GOSUB *SHKIOPN:CLOSE
- 23820 IF IR=0 THEN RETURN
- 23825 MCN=2:GOSUB *MCDSET
- 23826 PCCD=1:PCMES$="累計額演算":GOSUB *PROCD:'処理状況表示
- 23830 TRG1D#=VAL(SSY$+SSM$+SSD$)
- 23835 TRG2D=SDAY
- 23840 GOSUB *TRG1CLR
- 23860 FOR RR=1 TO IR
- 23870 GOSUB *SHKISRC
- 23872 PCCUR=RR:PCMAX=IR:PCINT=1
- 23873 PCCD=3:GOSUB *PROCD:'処理状況表示
- 23875 FOR RDY=1 TO 31
- 23876 TRG1#=VAL(IYM$)*100#+RDY
- 23877 TRG2=RDY
- 23880 IF TRG1#<TRG1D# THEN 23900
- 23885 GOSUB *SHKDGET
- 23892 GOSUB *累計額演算
- 23900 NEXT RDY
- 23910 NEXT RR
- 23920 PCCD=2:GOSUB *PROCD:'処理状況表示
- 23925 GOSUB *HKTOTAL書き込み
- 23927 MESN=14:GOSUB *SNDMSG
- 23930 MCN=1:GOSUB *MCDSET
- 23935 RETURN'
- 23940 '
- 24000 '家計簿ファイルチェック・・・・・・・・・・・・・・・・・・・・・・・・・・・・・v2.0
- 24100 *HLIDXファイルチェック
- 24110 GOSUB *HKIOPN:CLOSE
- 24120 IF IR>0 THEN RETURN
- 24130 MESN=15:GOSUB *MESDSP
- 24140 CMES$="新規家計簿ファイル作成":GOSUB *確認
- 24150 ON CAUNO GOTO 24160,24200
- 24160 GOSUB *ファイル年月入力
- 24170 GOSUB *新規ファイル作成
- 24180 IF FMAKE=0 THEN 24130
- 24190 MESN=4:GOSUB *MESDSP
- 24200 RETURN
- 24210 '
- 24220 *ファイル年月入力
- 24230 MESN=22:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 24240 SYMBOL(54*8,465)," 年 月",.75!,.75!,7
- 24250 GOSUB *本日の日付2
- 24260 YR$=TY$:MN$=TM$
- 24270 LX=54*8-4:LY=465 :LC=5:LL=4:LG=1:LP=1
- 24280 L$(1)=YR$:LINS=0:GOSUB *LKEYIN
- 24290 YR$=L$(1):SYMBOL(LX,LY),YR$,.75!,.75!,6
- 24300 LX=54*8+6*6+4:LY=465:LC=5:LL=2:LG=1:LP=1
- 24310 L$(1)=MN$:LINS=0:GOSUB *LKEYIN
- 24320 MN$=L$(1):SYMBOL(LX,LY),YR$,.75!,.75!,6
- 24330 LINE(0,463)-(639,479),PSET,0,BF
- 24340 SYMBOL(0,465),YR$+"年"+MN$+"月の家計簿ファイルを作成します。",.75!,.75!,6
- 24350 RETURN
- 24360 '
- 24370 *新規ファイル作成
- 24380 CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
- 24390 GOSUB *確認
- 24400 ON CAUNO GOTO 24410,24530
- 24410 MESN=14:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 24420 IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
- 24430 RI=IR+1:GOSUB *HKIPUT
- 24435 PCCD=1:PCMES$="新規家計簿ファイル作成":GOSUB *PROCD:'処理状況表示
- 24440 DEV$=SPACE$(128) :'------------ファイル作成
- 24450 FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(52):NEXT JJ
- 24460 FOR RDY=1 TO 31
- 24470 LINE(70*8,465)-(639,479),PSET,0,BF
- 24480 SYMBOL(70*8,465),RIGHT$(STR$(RDY),2)+" / 31",.75!,.75!,4
- 24490 GOSUB *HKDPUT
- 24495 PCCUR=RDY:PCMAX=31:PCINT=1:PCCD=3:GOSUB *PROCD:'処理状況表示
- 24500 NEXT RDY
- 24510 MESN=14:GOSUB *SNDMSG
- 24515 PCCD=2:GOSUB *PROCD:'処理状況表示
- 24520 FMAKE=1:RETURN
- 24530 FMAKE=0:RETURN
- 24540 '
- 24550 *本日の日付2
- 24560 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 24570 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 24580 TY$=RIGHT$(STR$(TY),4)
- 24590 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 24600 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 24610 RETURN
- 24620 '
- 24630 *HKIOPN:'---------- インデックスファイルオープン
- 24640 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 24670 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 24680 OPEN "R",#2,FLN$
- 24690 FIELD #2,6 AS I$(1),32 AS I$(2)
- 24700 IR=LOF(2)
- 24710 RETURN
- 24720 '
- 24730 *HKDOPN:'---------- 家計簿データファイルオープン
- 24740 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 24770 FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
- 24780 OPEN "R",#1,FLN$
- 24790 FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
- 24800 AR=LOF(1)
- 24810 RETURN
- 24820 '
- 24830 '
- 24840 *HKIPUT:'---------- インデックスファイル作成
- 24850 GOSUB *HKIOPN
- 24860 LSET I$(1)=IYM$
- 24870 LSET I$(2)=IMK$
- 24880 PUT #2,RI
- 24890 CLOSE #2
- 24900 RETURN
- 24910 '
- 24920 *HKDPUT:'---------- 家計簿データ書き込み
- 24930 GOSUB *HKDOPN
- 24940 R=RDY
- 24950 LSET D$(1)=DEV$
- 24960 DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II ):NEXT II:LSET D$(2)=DX$
- 24970 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
- 24980 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
- 24990 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
- 25000 DX$="":FOR II=1 TO 4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
- 25010 PUT #1,R
- 25020 CLOSE #1
- 25030 RETURN
- 25090 '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 29900 '-----------------------------------------------------------------
- 30000 *内容表示座標読み取り
- 30040 RESTORE *設定内容表示座標:READ SWNN
- 30050 FOR B=1 TO SWNN
- 30060 READ CFDX(B),CFDY(B),CFDC(B),CFDL(B)
- 30070 NEXT B
- 30080 RETURN
- 30090 '
- 31200 *確認
- 31205 G=3:SWNOX=SWNO:MOUSE 1,,,0
- 31210 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31220 LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
- 31225 PLAY "o6l4ce":MOUSE 1,,,1
- 31230 FOR II=1 TO 4
- 31232 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
- 31234 WAIT SWAIT\10+1
- 31236 LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
- 31237 WAIT SWAIT\10+1
- 31238 NEXT II
- 31239 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
- 31240 MESN=19:GOSUB *SNDMSG:'28chr
- 31241 GOSUB *MCSELECT'ボタン選択
- 31242 IF SWNO<0 THEN SWNO=2
- 31243 IF SWNO=3 THEN GOSUB *MCDRAG:GOTO 31241
- 31244 IF SWNO=0 THEN 31241
- 31245 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 31260 WAIT SWAIT\5+1
- 31270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31272 CAUNO=SWNO:SWNO=SWNOX
- 31275 RETURN
- 31280 '
- 32000 '
- 32010 *ABOUT表示
- 32020 X1A=146:Y1A=150:XPA=326:YPA=100
- 32030 MOUSE 1,,,0
- 32040 GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 32050 LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
- 32060 MOUSE 1,,,1
- 32070 CMES$=ABOUT$:GOSUB *確認
- 32080 PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 32090 RETURN
- 32100 '
- 32300 *PROCD:'処理状況表示
- 32310 ON PCCD GOTO *PC01,*PC02,*PC03
- 32320 *PC01
- 32330 GET@A(150,200)-(483,256),MD_SB#
- 32340 MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
- 32345 SYMBOL(226,204),PCMES$,.75!,.75!,0
- 32350 RETURN
- 32360 *PC02
- 32370 PUT@A(150,200)-(483,256),MD_SB#
- 32380 RETURN
- 32400 *PC03:' pcmax,pccur,pcint
- 32410 XP0=157:YP0=240:XPM=477:YPM=250
- 32420 IF (PCCUR MOD PCINT)<>0 THEN RETURN
- 32430 XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
- 32440 LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
- 32450 RETURN
- 32460 '
- 34000 *PATHMAKE:'---------- パス作成 -------------------------------
- 34005 DRV$=LEFT$(XDRV$,2)
- 34010 IF LEN(XDRV$)=3 THEN DRV$=LEFT$(XDRV$,2):PATH$="":GOTO 34020
- 34015 PATH$=RIGHT$(XDRV$,LEN(XDRV$)-2)
- 34020 RETURN
- 34030 '
- 35000 '------------------------------------------------------------------
- 35010 *辞書データ作成' / 家計簿システム /
- 35020 ' HKWRDM.BAS Copyrigit(C) T.Komura / Version 1.1 /
- 35030 ' Version 1.0 1993.08.04 / 辞書データ作成ルーチン /
- 35040 '
- 35050 MESN=14:GOSUB *MESDSP:SWNOX=SWNO
- 35060 CMES$="辞書データの作成":GOSUB *確認
- 35070 ON SWNO GOTO 35080,35150
- 35080 MESN=15:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 35090 GOSUB *FLKILL
- 35100 GOSUB *単語選択メイン
- 35110 GOSUB *分類ソートメイン
- 35120 LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 1
- 35130 PRINT "辞書データ作成完了 "
- 35140 MESN=14:GOSUB *SNDMSG
- 35150 SWNO=SWNOX
- 35160 RETURN
- 35170 '
- 35180 'DIM DYN$(20),DRM$(20)
- 35190 'DIM WRD$(1000),WLN(1000),WFR(1000)
- 35200 *単語選択メイン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 35210 GOSUB *SHKIOPN:CLOSE
- 35220 FOR RR=2 TO IR
- 35230 GOSUB *SHKISRC
- 35240 FOR RDY=1 TO 31
- 35250 LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 4
- 35260 PRINT "単語検索中 ";IYM$;" / ";RIGHT$(STR$(RDY),2)
- 35270 GOSUB *SHKDGET
- 35280 FOR II=1 TO 15
- 35290 GOSUB *WORDSELECT
- 35300 GOSUB *WORDWRITE
- 35310 NEXT II
- 35320 NEXT RDY
- 35330 NEXT RR
- 35340 RETURN'
- 35350 '
- 35360 *WORDSELECT:'単語選択
- 35370 FOR KK=1 TO 9:SRM$(KK)="":NEXT KK
- 35380 ' PRINT (DRM$(II))
- 35390 SC=0
- 35400 SWL=KLEN(DRM$(II)):IF SWL=0 THEN 35540
- 35410 CKP(1)=KINSTR(DRM$(II)," ")
- 35420 CKP(2)=KINSTR(DRM$(II),"・")
- 35430 CKP(3)=KINSTR(DRM$(II),"/")
- 35440 IF CKP(1)=0 AND CKP(2)=0 AND CKP(3)=0 THEN CKP=SWL:GOTO 35500
- 35450 CKP=32
- 35460 FOR KK=1 TO 3:IF CKP(KK)=0 THEN 35480
- 35470 IF CKP>CKP(KK) THEN CKP=CKP(KK)
- 35480 NEXT KK
- 35490 IF CKP=1 THEN 35510
- 35500 SC=SC+1:SRM$(SC)=KLEFT$(DRM$(II),CKP-1)
- 35510 IF CKP>=SWL THEN 35540
- 35520 DRM$(II)=KRIGHT$(DRM$(II),SWL-CKP)
- 35530 GOTO 35400
- 35540 RETURN
- 35550 '
- 35560 *WORDWRITE:'単語一時ファイル格納
- 35570 EXF$="TXT":GOSUB *FLNCHK
- 35580 OPEN "A",#3,FLN$
- 35590 FOR LL=1 TO SC:IF SC=0 THEN 35620
- 35600 PRINT #3,SRM$(LL)
- 35610 ' PRINT II,SRM$(LL)
- 35620 NEXT LL
- 35630 CLOSE #3
- 35640 RETURN
- 35650 '
- 35660 '
- 35670 *分類ソートメイン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 35680 FOR II=1 TO 15
- 35690 EXF$="TXT":GOSUB *FLNCHK
- 35700 OPEN "I",#1,FLN$
- 35710 WRDC=1
- 35720 INPUT #1,A$
- 35730 WRD$(WRDC)=A$
- 35740 WLN(WRDC)=LEN(A$)
- 35750 WFR(WRDC)=1
- 35760 '---------------------------分類
- 35770 IF EOF(1)<>0 THEN 35930
- 35780 LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 4
- 35790 PRINT CFI$(II);" 使用頻度調査中 ";
- 35800 INPUT #1,A$
- 35810 FIND=0
- 35820 FOR JJ=1 TO WRDC
- 35830 IF A$=WRD$(JJ) THEN FIND=1:NOF=JJ:JJ=WRDC+1
- 35840 NEXT JJ
- 35850 IF FIND=1 THEN WFR(NOF)=WFR(NOF)+1:GOTO 35770
- 35860 WRDC=WRDC+1
- 35870 WRD$(WRDC)=A$
- 35880 WLN(WRDC)=LEN(A$)
- 35890 WFR(WRDC)=1
- 35900 ' PRINT "分類";WRDC,WLN(WRDC),WFR(WRDC),WRD$(WRDC)
- 35910 GOTO 35770
- 35920 '---------------------------ソート
- 35930 ROOP=WRDC-1
- 35940 LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 4
- 35950 PRINT CFI$(II);" 使用頻度順ソート中 ";
- 35960 CHGF=0
- 35970 FOR JJ=1 TO ROOP
- 35980 IF WFR(JJ)>=WFR(JJ+1) THEN 36030
- 35990 WRD$=WRD$(JJ) :WLN=WLN(JJ) :WFR=WFR(JJ)
- 36000 WRD$(JJ)=WRD$(JJ+1):WLN(JJ)=WLN(JJ+1):WFR(JJ)=WFR(JJ+1)
- 36010 WRD$(JJ+1)=WRD$ :WLN(JJ+1)=WLN :WFR(JJ+1)=WFR
- 36020 CHGF=1
- 36030 NEXT JJ
- 36040 IF CHGF=0 THEN 36080
- 36050 ROOP=ROOP-1
- 36060 IF ROOP=0 THEN 36080
- 36070 GOTO 35960
- 36080 '---------------------------ファイル出力
- 36090 EXF$="DIC":GOSUB *FLNCHK
- 36100 OPEN "A",#2,FLN$
- 36110 LOCATE CFDX(CFNO),CFDY(CFNO):COLOR 6
- 36120 PRINT CFI$(II);" 辞書データ作成中 ";
- 36130 FOR JJ=1 TO WRDC
- 36140 PRINT #2,RIGHT$(STR$(100+WLN(JJ)),2);",";
- 36150 ' PRINT "出力";II;JJ,RIGHT$(STR$(100+WLN(JJ)),2);"/";
- 36160 PRINT #2,RIGHT$(STR$(10000+WFR(JJ)),4);",";
- 36170 ' PRINT RIGHT$(STR$(10000+WFR(JJ)),4);"/";
- 36180 PRINT #2,WRD$(JJ)
- 36190 ' PRINT WRD$(JJ)
- 36200 NEXT JJ
- 36210 CLOSE #2
- 36220 '---------------------------
- 36230 CLOSE #1
- 36240 NEXT II
- 36250 RETURN
- 36260 '
- 36270 'sub routine for HKWRD
- 36280 '////////////////////////////////////////////////////////////////
- 36290 *SHKIOPN:'---------- インデックスファイルオープン
- 36300 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 36330 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 36340 OPEN "R",#2,FLN$
- 36350 FIELD #2,6 AS I$(1),32 AS I$(2)
- 36360 IR=LOF(2)
- 36370 RETURN
- 36380 '
- 36390 *SHKDOPN:'---------- 家計簿データファイルオープン
- 36400 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 36430 FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
- 36440 OPEN "R",#1,FLN$
- 36450 FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
- 36460 AR=LOF(1)
- 36470 RETURN
- 36480 '
- 36490 *SHKISRC:'---------- インデックスファイル検索
- 36500 FIDX=0
- 36510 GOSUB *SHKIOPN
- 36520 GET #2,RR
- 36530 IYM$=I$(1):IMAK$=I$(2)
- 36540 CLOSE #2
- 36550 RETURN
- 36560 '
- 36570 *SHKDGET:'---------- 家計簿データ読み込み
- 36580 GOSUB *SHKDOPN
- 36590 R=RDY
- 36600 GET #1,R
- 36610 DEV$=D$(1)
- 36620 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
- 36630 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*52+1,52):NEXT II
- 36640 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*52+1,52):NEXT II
- 36650 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*52+1,52):NEXT II
- 36660 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*52+1,52):NEXT II
- 36680 CLOSE #1
- 36690 RETURN
- 36700 '
- 36710 *FLNCHK:'----------- ファイル名チェック'
- 36720 DRV$=LEFT$(DICDRV$,2)
- 36730 IF LEN(DICDRV$)=3 THEN DRV$=LEFT$(DICDRV$,2):PATH$="":GOTO 36750
- 36740 PATH$=RIGHT$(DICDRV$,LEN(DICDRV$)-2)
- 36750 FLN$=DRV$+PATH$+"\HKWRD"+RIGHT$(STR$(100+II),2)+"."+EXF$
- 36760 FLNX$=DRV$+"(1)"+PATH$+"\HKWRD"+RIGHT$(STR$(100+II),2)+"."+EXF$
- 36770 RETURN
- 36780 '
- 36790 *FLKILL:'----------- ファイル消去
- 36800 FOR II=1 TO 15
- 36810 EXF$="TXT":GOSUB *FLNCHK
- 36820 OPEN "R",#1,FLNX$:FIELD #1,1 AS DUMMYD$
- 36830 CLOSE #1
- 36840 KILL FLN$
- 36850 EXF$="DIC":GOSUB *FLNCHK
- 36860 OPEN "R",#1,FLNX$:FIELD #1,1 AS DUMMYD$
- 36870 CLOSE #1
- 36880 KILL FLN$
- 36890 NEXT II
- 36900 RETURN
- 36910 '
- 36920 '
- 37200 *HKTFOPN:'---------- 総計データファイルオープン
- 37210 XDRV$=PRGDRV$:GOSUB *PATHMAKE
- 37240 FLN$=DRV$+"(660)"+PATH$+"\HTOTAL"+".DAT"
- 37250 OPEN "R",#4,FLN$
- 37262 FIELD #4,10*15 AS DT$(1),10*15 AS DT$(2),10*18 AS DT$(3),10*18 AS DT$(4)
- 37270 AR=LOF(4)
- 37280 RETURN
- 37290 '
- 37300 *HKTFPUT:'---------- 総計データ書き込み
- 37310 GOSUB *HKTFOPN
- 37330 DX$="":FOR II=1 TO 15:DX$=DX$+TDYN1$(II) :NEXT II:LSET DT$(1)=DX$
- 37332 DX$="":FOR II=1 TO 15:DX$=DX$+TDYN2$(II) :NEXT II:LSET DT$(2)=DX$
- 37334 DX1$="":FOR II=1 TO 16:DX1$=DX1$+TSDYN1$(II):NEXT II
- 37336 DX2$="":FOR II=1 TO 16:DX2$=DX2$+TSDYN2$(II):NEXT II
- 37340 LSET DT$(3)=DX1$+SDYN$(17)+DATE$+SPACE$(2)
- 37345 LSET DT$(4)=DX2$+SDYN$(18)+DATE$+SPACE$(2)
- 37360 PUT #4,1
- 37370 CLOSE #4
- 37380 RETURN
- 37390 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック2' V2.3 1994.06.19
- 39020 CFGLN=0
- 39030 OPEN "R",#1,"(1)HK.CFG"
- 39040 FIELD #1,1 AS D$
- 39050 IF LOF(1)=0 THEN *CFGFE1
- 39060 CLOSE
- 39070 OPEN "I",#1,"HK.CFG"
- 39075 CFNO=0 :GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$
- 39080 CFNO=16:GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
- 39082 FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
- 39084 FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
- 39090 CFNO=17:GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
- 39100 CFNO=19:GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
- 39110 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$
- 39120 CFNO=18:GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
- 39130 CFNO=22:GOSUB *CFGREAD :'-- SNDMF
- 39140 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39150 SNDMF=VAL(RIGHT$(CFG$,1))
- 39160 CFI$(22)=RIGHT$(CFG$,1)
- 39170 CFNO=23:GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
- 39180 CFNO=20:GOSUB *CFGREAD :'-- SWAIT
- 39190 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39200 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39210 CFI$(20)=RIGHT$(CFG$,LEN(CFG$)-5)
- 39220 FOR II=1 TO 15 :'-- CFI
- 39230 CFNO=II:GOSUB *CFGREAD
- 39240 NEXT II
- 39250 CFNO=24:GOSUB *CFGREAD :'-- DICIF
- 39260 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39270 DICIF=VAL(RIGHT$(CFG$,1))
- 39280 CFI$(24)=RIGHT$(CFG$,1)
- 39290 CFNO=25:GOSUB *CFGREAD :'-- DICSF
- 39300 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39310 DICSF=VAL(RIGHT$(CFG$,1))
- 39320 CFI$(25)=RIGHT$(CFG$,1)
- 39330 CFNO=26:GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$
- 39335 CFNO=28:GOSUB *CFGREAD :'-- TAXR$
- 39336 IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
- 39338 CFI$(28)=RIGHT$(CFG$,LEN(CFG$)-5)
- 39339 TAXR$=CFI$(48)
- 39340 CFNO=27:GOSUB *CFGREAD :'-- CALCF
- 39350 IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
- 39360 CALCF=VAL(RIGHT$(CFG$,1))
- 39370 CFI$(27)=RIGHT$(CFG$,1)
- 39380 CFNO=29:GOSUB *CFGREAD :'-- SDAY
- 39390 IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
- 39400 SDAY=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39410 CFI$(29)=RIGHT$(CFG$,LEN(CFG$)-5)
- 39420 CFNO=30:GOSUB *CFGREAD :'-- SSYMD
- 39425 IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
- 39430 SSYMD$=RIGHT$(CFG$,LEN(CFG$)-6)
- 39435 CFI$(30)=SSYMD$
- 39440 SSY$=LEFT$(CFI$(30),4) :SSY=VAL(SSY$)
- 39442 SSM$=MID$(CFI$(30),5,2):SSM=VAL(SSM$)
- 39444 SSD$=RIGHT$(CFI$(30),2):SSD=VAL(SSD$)
- 39500 CLOSE
- 39510 RETURN
- 39618 '
- 39630 *CFGFE1
- 39635 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39640 CLOSE:WAIT 100:GOTO *ENDP
- 39645 *CFGFE2
- 39650 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
- 39655 CLOSE:WAIT 100:GOTO *ENDP
- 39660 *CFGFE3
- 39665 LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39670 CLOSE:WAIT 100:GOTO *ENDP
- 39675 *CFGREAD
- 39680 IF EOF(1)<>0 THEN *CFGFE3
- 39685 LINE INPUT #1,CFG$
- 39690 CFGLN=CFGLN+1:CFGX$(CFGLN)=CFG$
- 39695 IF LEFT$(CFG$,1)="/" THEN CFIDN(CFGLN)=0:GOTO 39680
- 39700 CFI$(CFNO)=CFG$:CFIDN(CFGLN)=CFNO
- 39705 RETURN
- 39710 '
- 39715 '///////////////////////////////////////////////////////
- 39720 *CONFIGファイル出力' V2.2 1993.12.22
- 39725 OPEN "R",#1,"(1)HKOLD.CFG"
- 39730 FIELD #1,1 AS D$
- 39735 CLOSE
- 39740 KILL "HKOLD.cfg"
- 39745 NAME "HK.CFG" AS "HKOLD.CFG"
- 39750 '
- 39755 OPEN "O",#1,"HK.CFG"
- 39760 FOR II=1 TO CFGLN:'PRINT CFIDN(II);
- 39765 IF CFIDN(II)<>0 THEN GOSUB *CFIPUT:GOTO 39775
- 39770 PRINT #1,CFGX$(II)
- 39775 NEXT II
- 39780 ENDF$="/-------------------- "+TIME$+" "+DATE$+" HK.CFG end of file"
- 39785 PRINT #1,ENDF$
- 39790 CLOSE
- 39795 RETURN
- 39800 '
- 39805 *CFIPUT
- 39810 CFNO=CFIDN(II)
- 39812 IF CFNO=16 THEN CFI$(CFNO)=PRGDRV$
- 39815 IF CFNO=22 THEN CFI$(CFNO)="SNDMF="+CFI$(CFNO)
- 39820 IF CFNO=20 THEN CFI$(CFNO)="WAIT=" +CFI$(CFNO)
- 39825 IF CFNO=24 THEN CFI$(CFNO)="DICIF="+CFI$(CFNO)
- 39830 IF CFNO=25 THEN CFI$(CFNO)="DICSF="+CFI$(CFNO)
- 39832 IF CFNO=27 THEN CFI$(CFNO)="CALCF="+CFI$(CFNO)
- 39835 IF CFNO=28 THEN CFI$(CFNO)="TAXR="+CFI$(CFNO)
- 39840 IF CFNO=29 THEN CFI$(CFNO)="SDAY=" +CFI$(CFNO)
- 39845 IF CFNO=30 THEN CFI$(CFNO)="SSYMD="+CFI$(CFNO)
- 39850 PRINT #1,CFI$(CFNO)
- 39855 RETURN
- 39860 '
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 6 'SWGN スイッチグループ数
- 40020 '/////////////////////////////
- 40030 '-------------------- [G1] メインスイッチグループ
- 40040 ' SWN(G),SMX,SMY,SMW
- 40050 DATA 43 :'ボタン個数
- 40060 ' X1 ,X2 ,Y1 ,Y2
- 40070 DATA 000,639,000,479 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40080 DATA 000,000,000,000 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40090 '--------------------
- 40100 ' XB1 XB2 YB1 YB2
- 40110 DATA 0,123, 0, 22 ' HK2 1
- 40120 DATA 124,168, 5, 22 '記 入 2
- 40130 DATA 169,212, 5, 22 '検 索 3
- 40140 DATA 213,256, 5, 22 '分 析 4
- 40150 DATA 257,300, 5, 22 'カレンダー 5
- 40160 DATA 301,344, 5, 22 '設 定 6
- 40170 DATA 444,567, 0, 22 '日 付 7
- 40180 DATA 568,591, 0, 22 'clock 8
- 40190 DATA 592,615, 0, 22 'help 9
- 40200 DATA 616,639, 0, 22 'END 10
- 40210 '
- 40220 DATA 445,472, 30, 46 '累積算 11
- 40222 DATA 544,591, 28, 54 '読 出 12
- 40224 DATA 592,639, 28, 54 '保 存 13
- 40230 '
- 40240 DATA 118,135,133,146 'cfi01 14 1
- 40250 DATA 118,135,148,161 'cfi02 15 2
- 40260 DATA 118,135,163,176 'cfi03 16 3
- 40270 DATA 118,135,185,198 'cfi04 17 4
- 40280 DATA 118,135,200,213 'cfi05 18 5
- 40300 DATA 118,135,215,228 'cfi06 19 6
- 40310 DATA 118,135,230,243 'cfi07 20 7
- 40320 DATA 118,135,245,258 'cfi08 21 8
- 40330 DATA 118,135,260,273 'cfi09 22 9
- 40350 DATA 118,135,275,288 'cfi10 23 10
- 40360 DATA 118,135,290,303 'cfi11 24 11
- 40370 DATA 118,135,305,318 'cfi12 25 12
- 40380 DATA 118,135,320,333 'cfi13 26 13
- 40390 DATA 118,135,335,348 'cfi14 27 14
- 40400 DATA 118,135,350,363 'cfi15 28 15
- 40410 '
- 40420 DATA 302,328,133,146 'prgd 29 16
- 40430 DATA 302,328,148,161 'datad 30 17
- 40440 DATA 302,328,163,176 'fmbd 31 18
- 40450 DATA 302,328,178,191 'workd 32 19
- 40470 DATA 302,314,227,240 'wait up 33 20
- 40480 DATA 316,328,227,240 'wait dn 34 21
- 40490 DATA 302,328,251,264 'sndf 35 22
- 40500 DATA 302,328,270,283 'sndd 36 23
- 40510 DATA 373,399,295,308 'dicf1 37 24
- 40520 DATA 510,536,295,308 'dicf2 38 25
- 40530 DATA 302,328,314,327 'dicd 39 26
- 40540 DATA 302,328,339,352 'calcf 40 27
- 40550 DATA 510,536,339,352 'taxr 41 28
- 40570 DATA 302,328,363,376 'sday 42 29
- 40580 DATA 302,328,382,395 'symd 43 30
- 40640 '
- 40900 '-------------------- スイッチグループ[2]ファイルセレクタ
- 40910 DATA 21 :'ボタン個数
- 40920 ' X1 ,X2 ,Y1 ,Y2
- 40930 DATA 141,491,214,434 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40940 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40950 '--------------------
- 41010 ' XB1,XB2,YB1,YB2
- 41020 DATA 333,345, 4, 15 :'1 exit
- 41030 DATA 6, 24, 43, 76 :'2 prev.drive
- 41040 DATA 25, 58, 43, 76 :'3 curr.drive
- 41050 DATA 59, 77, 43, 76 :'4 next.drive
- 41060 DATA 333,345, 25, 37 :'5 directry up
- 41070 DATA 333,345, 43, 55 :'6 list up
- 41080 DATA 333,345,178,190 :'7 list down
- 41090 DATA 242,284,198,214 :'8 exec
- 41100 DATA 285,327,198,214 :'9 cancel
- 41110 DATA 3, 16, 3, 16 :'10 drag
- 41120 DATA 86,163,199,213 :'11 key in
- 41130 DATA 86,327, 45, 58 :'12 list 1ummy
- 41140 DATA 86,327, 59, 72 :'13 list 2ummy
- 41150 DATA 86,327, 73, 86 :'14 list 3ummy
- 41160 DATA 86,327, 87,100 :'15 list 4ummy
- 41170 DATA 86,327,101,114 :'16 list 5ummy
- 41180 DATA 86,327,115,128 :'17 list 6ummy
- 41190 DATA 86,327,129,142 :'18 list 7ummy
- 41200 DATA 86,327,143,156 :'19 list 8ummy
- 41210 DATA 86,327,157,170 :'20 list 9ummy
- 41220 DATA 86,327,171,184 :'21 list 10dummy
- 41560 '
- 42000 '-------------------- スイッチグループ[3] 確認
- 42010 DATA 3 :'ボタン個数
- 42020 ' X1 ,X2 ,Y1 ,Y2
- 42030 DATA 106,522,258,287 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42040 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42050 '--------------------
- 42060 ' XB1 XB2 YB1 YB2
- 42070 DATA 338,369, 6, 23 ' OK 01
- 42080 DATA 370,401, 6, 23 ' NG 02
- 42090 DATA 8, 27, 5, 24 'drag
- 42100 '
- 42110 '
- 42120 '-------------------- スイッチグループ(4)
- 42130 DATA 22 :'ボタン個数
- 42140 ' X1 ,X2 ,Y1 ,Y2
- 42150 DATA 498,639,125,409 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42160 DATA 498,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42170 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 42180 DATA 6, 35, 25, 43 ' 取消
- 42190 DATA 36, 65, 25, 43 ' 消去
- 42200 DATA 66,101, 25, 43 ' 入力
- 42210 DATA 102,118, 25, 43 ' ヌ
- 42220 DATA 119,135, 25, 43 ' ネ
- 42230 DATA 103,135, 55, 68 ' 1
- 42240 DATA 103,135, 69, 82 ' 2
- 42250 DATA 103,135, 83, 96 ' 3
- 42260 DATA 103,135, 97,110 ' 4
- 42270 DATA 103,135,111,124 ' 5
- 42280 DATA 103,135,125,138 ' 6
- 42290 DATA 103,135,139,152 ' 7
- 42300 DATA 103,135,153,166 ' 8
- 42310 DATA 103,135,167,180 ' 9
- 42320 DATA 103,135,181,194 ' 10
- 42330 DATA 103,135,195,208 ' 11
- 42340 DATA 103,135,209,222 ' 12
- 42350 DATA 103,135,223,236 ' 13
- 42360 DATA 103,135,237,250 ' 14
- 42370 DATA 103,135,251,264 ' 15
- 42380 DATA 103,135,265,278 ' 16
- 42390 DATA 5, 18, 4, 17 'drag
- 42400 '-------------------- スイッチグループ(5) Helpグループ
- 42410 DATA 6 :'ボタン個数
- 42420 ' X1 ,X2 ,Y1 ,Y2
- 42430 DATA 60,577,100,421 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42440 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42450 '
- 42460 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 42470 DATA 499,512, 25, 38 '前頁
- 42480 DATA 499,512, 39, 52 '前行
- 42490 DATA 499,512,289,302 '次行
- 42500 DATA 499,512,303,316 '次頁
- 42510 DATA 499,512, 6, 19 '終了
- 42520 DATA 6, 17, 7, 18 'drag
- 42530 '
- 42540 '-------------------- スイッチグループ[6] デジタル時計
- 42550 DATA 2 :'ボタン個数
- 42560 ' X1 ,X2 ,Y1 ,Y2
- 42570 DATA 46,607,100,306 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42580 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42590 '--------------------
- 42600 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 42610 DATA 543,561, 0, 18 ' end 01
- 42620 DATA 3, 16, 3, 16 ' drag 02
- 42630 '
- 50000 *設定内容表示座標
- 50010 'SWNO
- 50020 DATA 30
- 50100 ' X Y C L ITEM CFNO
- 50200 DATA 142,134,15, 6 ' --- CFI 1
- 50210 DATA 142,149,15, 6 ' --- CFI 2
- 50220 DATA 142,164,15, 6 ' --- CFI 3
- 50230 DATA 142,186,15, 6 ' --- CFI 4
- 50240 DATA 142,201,15, 6 ' --- CFI 5
- 50250 DATA 142,216,15, 6 ' --- CFI 6
- 50260 DATA 142,231,15, 6 ' --- CFI 7
- 50270 DATA 142,246,15, 6 ' --- CFI 8
- 50280 DATA 142,261,15, 6 ' --- CFI 9
- 50290 DATA 142,276,15, 6 ' --- CFI 10
- 50300 DATA 142,291,15, 6 ' --- CFI 11
- 50310 DATA 142,306,15, 6 ' --- CFI 12
- 50320 DATA 142,321,15, 6 ' --- CFI 13
- 50330 DATA 142,336,15, 6 ' --- CFI 14
- 50340 DATA 142,351,15, 6 ' --- CFI 15
- 50600 '
- 50610 DATA 332,134, 4,30 ' --- PRGD 16
- 50620 DATA 332,149,13,30 ' --- DATD 17
- 50630 DATA 332,164, 9,30 ' --- FMBD 18
- 50640 DATA 332,179, 9,30 ' --- RAMD 19
- 50670 DATA 338,228,12, 3 ' --- waitup 20
- 50680 DATA 338,228,12, 3 ' --- waitdn 21
- 50690 DATA 332,252,12, 6 ' --- SNDM 22
- 50700 DATA 332,271, 9,30 ' --- SNDD 23
- 50710 DATA 404,296,12, 6 ' --- DICF1 24
- 50720 DATA 541,296,12, 6 ' --- DICF2 25
- 50730 DATA 332,315, 9,30 ' --- DICD 26
- 50740 DATA 332,340,12, 6 ' --- SCAL 27
- 50750 DATA 545,340,15, 5 ' --- taxr 28
- 50760 DATA 352,364,15, 2 ' --- SDAY 29
- 50770 DATA 340,383,15, 8 ' --- SSYMD 30
- 50780 '
- 51090 '
- 52000 *DCLOCKDATA
- 52010 ' 1,2,3,4,5,6,7
- 52020 DATA 1,1,1,1,1,1,0 '0 (1)
- 52030 DATA 0,1,1,0,0,0,0 '1 ---
- 52040 DATA 1,1,0,1,1,0,1 '2 | |(2)
- 52050 DATA 1,1,1,1,0,0,1 '3 (6)|(7)| ●(8)
- 52060 DATA 0,1,1,0,0,1,1 '4 ---
- 52070 DATA 1,0,1,1,0,1,1 '5 | |(3) ●(9)
- 52080 DATA 1,0,1,1,1,1,1 '6 (5)| |
- 52090 DATA 1,1,1,0,0,0,0 '7 ---
- 52100 DATA 1,1,1,1,1,1,1 '8 (4)
- 52110 DATA 1,1,1,1,0,1,1 '9
- 52120 ' dgx,dgy
- 52130 DATA 80, 40 '(1)
- 52140 DATA 120, 70 '(2)
- 52150 DATA 110,140 '(3)
- 52160 DATA 80,180 '(4)
- 52170 DATA 40,140 '(5)
- 52180 DATA 50, 70 '(6)
- 52190 DATA 80,100 '(7)
- 52200 DATA 280, 80 '(8)
- 52210 DATA 280,140 '(9)
- 52220 ' ofset
- 52230 DATA 0 '1桁
- 52240 DATA 120 '2桁
- 52250 DATA 280 '3桁
- 52260 DATA 400 '4桁
- 52270 '
- 60000 '
- 60010 ' 座標確認 DEBUG ROUTINE
- 60020 '
- 60030 MOUSE 0:MOUSE 1,0,0,1
- 60040 IF MOUSE(2,1)<>0 THEN STOP
- 60050 IF MOUSE(2,0)=0 THEN 60050
- 60060 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60070 LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
- 60080 GOTO 60040
- 61000 '
-